C語言把二進位制轉換為十進位制數的方法和示例

2021-10-05 05:34:10 字數 693 閱讀 8773

在實際開發中,我們可能會用0和1的字串來表達資訊,例如某裝置有八個感測器,每個感測器的狀態用1表示正常,用0表示故障,用乙個二進位制的字串表示它們如01111011,也可以用乙個字元或整數表示它即123。

思路:把二進位制字串從最高位(左邊第一位)開始用商乘以2再加餘數(該位的數字),如此迴圈,左邊第一位的商肯定是0。

例如1111011轉化成十進位制:

0*2+1=1

1*2+1=3

3*2+1=7

7*2+1=15

15*2+0=30

30*2+1=61

61*2+1=123

結果是123。

示例:

/*

* 程式名:book.c,此程式用於把二進位制的字串轉換為十進位制的整數。

*/#include

"stdio.h"

#include

// 把二進位制字串轉換為十進位制。

// pbin:待轉換的二進位制字串。

// 返回值:二進位制字串轉換為十進位制整數的結果。

long

bintodec

(const

char

*pbin)

return result;

}int

main()

十進位制 轉換為 二進位制

聽說優酷前端面試有問進製數轉換的,甚至是負正整數轉換為二進位制,那就索性一次整個明白 正整數轉二進位制 負整數轉二進位制 小數轉二進位制 1 正整數轉成二進位制。口訣 除二取餘,倒序排列,高位補零。42 除以2得到的餘數 右邊 為010101,然後倒著排一下就是取到的二進位制了 如下圖 計算機內部表...

(string)十進位制 轉換為 二進位制

將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。輸入描述 多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 輸出描述 每行輸出對應的二進位制數。輸入 013 8輸出 0111 1000 下面是王道上的解法,模擬的是...

035 十進位制轉換為二進位制

例 輸入乙個十進位制正整數,將其轉換為二進位制輸出。核心演算法 十進位制轉換為二進位制,可參考 二 八 十 十六進製制轉換 分析 將一串未知數字按照某種指定順序輸出時,可以考慮先將每個數字分別存入陣列中,通過陣列下標來確定位置再輸出 注意 int型佔16個二進位制位 二進位制數的最高位是符號位,不參...