二進位制與十進位制的相互轉換

2021-09-12 07:16:30 字數 785 閱讀 4163

思路:單純的談倆二進位制數相加得到 乙個二進位制數有些難度,所以本題可將倆二進位制數s1,s2分別轉換為對應的十進位制數x1,x2,再計算十進位制的相加就簡單多了,最後再講十進位制的結果轉換為對應二進位制即可。所以本題可構造兩個轉換函式doutoten()二進位制轉十進位制函式和tentodou()十進位制轉二進位制函式。(這裡假設二進位制陣列最多20位數)

**:

#include 

#include

#include

#include

using namespace std;

intdoutoten

(string s)

return x;

}void

tentodou

(int x,

int s)

for(

int j=i-

1;j>=

0;j--

) cout<}int

main()

return0;

}

結果:

輸入:101 110

輸出:11

1011

輸入:111111 100000

輸出:127

1111111

總結:二進位制轉十進位制時,應定義int型陣列而非字串型別

並且注意區分:s[i]是字元,s[i]-'0』表示s[i]的ascii碼值減去』0』的ascii碼值,在本題中記得到s[i]所代表的整數型數字;

但是int x=int(a[i])才是將a[i]字元轉化為對應的ascii碼值。

二進位制與十進位制相互轉換

我們最常見的進製就是十進位制 滿十進一 當這個數字個位比9大的時候 十位加一 個位歸零 就是 9 之後是 10 19 之後是20 二進位制就是滿二進一 就是 1 的 二進位制 還是1,但是2 的二進位制就是10,3的二進位制就是11,4的二進位制就是100 那如何將十進位制正整數轉換成二進位制呢 比...

十進位制與二進位制的相互轉換

一 二進位制轉十進位制 要從右到左用二進位制的每個數去乘以2的相應次方 例如 二進位制數1101.01轉化成 十進位制1101.01 2 1 2 0 0 2 1 1 2 2 1 2 3 0 2 1 1 2 2 1 0 4 8 0 0.25 13.25 所以總結起來通用公式為 abcd.efg 2 d...

二進位制與十進位制的相互轉換(小數)

1 十進位制數轉換為二進位制 小數 a 十進位制數的整數部分 十進位制整數轉換為二進位制整數採用 除2取餘,逆序排列 法。具體做法是 用2去除十進位制整數,可以得到乙個商和餘數 再用2去除商,又會得到乙個商和餘數,如此進行,直到商為零時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數...