java十進位制與二進位制之間的轉換

2021-08-19 07:25:41 字數 1074 閱讀 3376

1.正十進位制轉換成二進位制

除2取餘法:讓十進位制整數不斷除以2,並記錄餘數,直至商為0,把餘數倒序排列得到的即為相應的二進位制數

例如十進位制數11

最終的結果為1011

2.正二進位制轉換為十進位制

計算機儲存資料時按位元組儲存,乙個位元組等於8個二進位制位,所以每8個二進位制位為乙個單位,最高位為符號位,0代表非負數,1代表負數,不足的位補0,所以上述完整的結果是00001011.二進位制轉換為十進位制採用加權法.讓二進位制的每個數字乘當前為的權重,再講所有積相加.

例如00000011   1*2^1+1*2^0=3

3.負十進位制轉換為二進位制

先將負十進位制的絕對值轉換為二進位制,再將所得的二進位制數按位取反再加一.

例如-13

所得結果為1101補全位數 00001101

按位取反 11110010

再加一 11110011

所以11110011為-13的二進位制數.

4.負二進位制轉換為十進位制

最高位為1的二進位制數為負二進位制數例如11110011.負二進位制數轉換為十進位制先減一再按位取反,然後用加權法得到乙個十進位制數,最後給這個十進位制數加負號,和3.的步驟正好相反.

11110011減一 11110010 

按位取反 00001101

加權 1*2^3+1*2^2+0*2^1+1*2^0=13

加負號  -13

5.單個位元組表示的整數範圍

單個位元組是8個二進位制位,最高位是符號位.

非負數範圍0000 0000~0111 1111 把0111 1111加權法得到的結果是127,也就是非負數範圍是0~127

負數範圍1000 0000~1111 1111 把1000 0000按4.算出得到結果為-128,1111 1111按4.算出結果為-1,也就是負數範圍是-1~-128.

綜上,單個位元組的範圍是-128~127

二進位制與十進位制

人們在生產實踐和日常生活中創造了多種表示數的方法,這些數的表示規則稱為數制。例如人們常用的十進位制 計算機中採用的二進位制等。十進位制計數法的加法規則是 逢十進一 任意乙個十進位制可用0 1 2 3 4 5 6 7 8 9十個字元的組合表示,它的基數是 10。二進位制計數法的加法規則是 逢二進一 任...

二進位制與十進位制

從右往左開始,數每一位2的n次冪並相加,冪從0開始每次遞增1 11101010 1 2 7 1 2 6 1 2 5 0 2 4 1 2 3 0 2 2 1 2 1 0 2 0 234除以2除到商為0即止,再把餘數倒序相連 234 234 2 商 117 餘 0 117 2 商 58 餘 1 58 2...

十進位制與二進位制之間轉換詳解

二 二進位制數轉成十進位制數 三 十進位制正整數轉八進位制 基本原理 除基數倒取餘數法。即 十進位制轉二進位制,基數就是2,用2整除乙個十進位制正整數,可以得到乙個商和餘數 再用2去除商,又會得到乙個商和餘數 如此進行,直到商為0 然後把先得到的餘數作為二進位制數的低位有效位,把後得到的餘數作為二級...