二進位制編碼 小記

2021-08-01 16:36:28 字數 923 閱讀 7652

byte 範圍 -128~~~127

(16進製制)0xff =(二進位制) 1111 1111 = (int)256

解為:

首一位為符號位 -

整體取反碼 0000 0000 加1 為0000 0001 為1 加上符號為 (byte) -1

例如 (16進製制)0x7f =(二進位制) 0111 1111 = (int)127

解為:

首一位為符號位 +

正的補碼,反碼均為自己 111 1111 為1 加上符號為(byte) 127

(byte)-127 的 127原碼 111 1111 反碼為 0000 0000 補碼加1 為000 0001

加上符號位 1000 0001 即表示(int) 129

(byte) -128的數值128原碼 1000 0000 反碼為0111 1111 補碼加1 為1000 0000

加上符號位(覆蓋) 1000 0000 即表示 (int)128

(byte)-1 的 1原碼 000 0001 反碼為 1111 1110 補碼加1 為1111 1111

加上符號位 1111 1111 即表示 (int)255

正的補碼,反碼均為自己

(byte)1 的 1原碼 0000 0001 反碼為000 0001 補碼為0000 0001

加上符號位 0000 0001 即表示 (int) 1

總結

byte a;

int b;

b=a>=0?a:256+a;

將a作為int型別向控制台輸出的時候,jvm作了乙個補位的處理,因為int型別是32位所以-1補位後的補碼就是1111111111111111111111111 1111 1111(32位),這個32位二進位制補碼表示的也是-1.

& 0xff就可以得到 (int)255

二進位制編碼知識

對於整型資料,二進位制的表示為符號位 數值位,對於浮點型資料,十進位制轉二進位制的方式如下 將十進位制浮點型資料轉換為二進位制時分別將整數部分和小數部分轉化為二進位制 對於整數部分,每次除2取餘直到商為0,第乙個除法所得餘數為最低位。即將餘數反序排列 對於小數部分,每次將其小數字乘以2,取其整數字,...

二進位制的編碼

假設有乙個只有4位的二進位制 0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111,共16個數,來表示 8到7共16個數。很自然的我們想到用0000 0111來表示0 7.8到 1該用誰來表示呢...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...