負數的二進位制和十進位制之間的轉換

2021-10-13 15:12:55 字數 745 閱讀 9565

負數的二進位制和十進位制之間的轉換:

1.十進位制負數轉換為二進位制的方法為:

1、將十進位制轉換為二進位制數。

2、對該二進位制數求反。

3、再將該二進位制數加1.

總之就是將十進位制數轉換為二進位制數求補碼即為結果。比如:

-32第一步:32(10)=00100000(2)

第二步:求反:11011111

第三步:加1:11100000

所以-32(10)=11100000(2)

2.計算機中的整數是用補碼儲存的,最高位為符號位,c語言也遵從同樣的規則。

如果最高位為0則為正數,求值的時候,直接轉為10進製即可。

最高位如果為1代表為負數,求值的時候,需要先把二進位制的值按位取反,然後加1得到負數絕對值(相反數)的二進位製碼,然後轉為10進製,加上負號即可。

以char型為例,char佔乙個位元組,即8位。

對於二進位制值b10110011轉換十進位制過程為:

先取反,即1變0,0變1,得到:

b0100 1100

再加1:

b0100 1101

轉為十進位制,即按照每位的權值乘上對應位的值,結果相加即可。

十進位制值=0*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0

=0+64+0+0+8+4+0+1

=77加上符號,最終的十進位制值就是-77。

即b10110011 表示的十進位制值為-77。

二進位制和十進位制之間的互相轉換

1.首先用2整除乙個十進位制整數,得到乙個商和餘數 2.然後再用2去除得到的商,又會得到乙個商和餘數 3.重複操作,一直到商為小於1時為止 4.然後將得到的所有餘數全部排列起來,再將它反過來 逆序排列 切記一定要反過來!假設我們現在需要將42轉為二進位制,那我們怎麼做呢,如下圖所示 1.用2乘十進位...

二進位制和十進位制之間的互相轉換

二進位制 00010011 轉換為如下 十進位制 2 0 1 2 1 1 2 2 0 2 3 0 2 4 1 1 2 0 0 16 19 十進位制 19 轉換為如下 二進位制 16 8 4 2 1 快速轉換為 16 2 1為1 16 2 1 19 否則為0,則轉換出來的二進位制為 1 0 0 1 1...

二進位制和十進位制之間的互相轉換

十進位制轉二進位制分為 整數轉二進位制 小數轉二進位制 1.首先用2整除乙個十進位制整數,得到乙個商和餘數 2.然後再用2去除得到的商,又會得到乙個商和餘數 3.重複操作,一直到商為小於1時為止 4.然後將得到的所有餘數全部排列起來,再將它反過來 逆序排列 切記一定要反過來!1.用2乘十進位制小數,...