在十進位制中表示正負數會有專門的符號來區分,而在二進位制中,怎樣表示正負數呢???
在二進位制中表示負數時,一般會把位權的最高位上的數字作為符號來使用,因此,位權的最高位也稱為符號位。
符號位為 0,表示正數;符號位為 1,表示負數。
例:我們都知道十進位制數 1, 用二進位制表示是:0000 0001,那麼,-1用二進位制怎麼表示呢?
可能有人會說,把0000 0001的符號位變成1不就完了嗎? 也就是表示成這樣:1000 0001
真的是這樣嗎?
我們都知道:1 + (-1)= 0,那麼我們將用二進位制表示的1和-1相加,看看等不等於0:
0000 0001 + 1000 0001 = 1000 0010 (十進位制表示是 -128)
那 -1用二進位制表示是怎樣的呢?
這裡我們用到的方法叫做「二進位制的補數」,補數就是用正數來表示負數。而求補數的方法叫做「取反加一」。
取反加一法可以分成兩步來計算:第一步:取反。 在二進位制數中,只有0和1;我們將0變成1,將1變成0,就叫取反。
第二步:加一。 將取反得到的數+1.
例如,要用八位二進位制數表示 -1,就得先求得 1的二進位制數,也就是0000 0001,然後用0000 0001的補數來表示 -1。 先取反:1111 1110,再加一:1111 1111。 驗證:0000 0001 + 1111 1111 = 1 0000 0000 在這裡,出現了最高位溢位的情況,也就是說在八位的範圍內進行運算時,1 0000 0000中的 1 溢位,1 0000 0000就被計算機認為是0000 0000了
這裡也請大家記住乙個法則:將二進位制的數取反加一後,與原來的值相加,結果為0
注:當運算結果為負數時,該結果為補數表示形式。例如:十進位制運算 6 - 9 = -3,如果用二進位制數進行運算的話,-3將會被補數形式表示。
負數二進位制表示
負數在計算機中用補碼表示。這是教科書上到表示,由於時間久遠,又由於上課沒好好學,以至於補碼是啥,在心中沒留下任何到痕跡,補習一下。原碼 整數在記憶體中用原碼表示,即按絕對值大小轉換成二進位制 如 b 00000101 b 是 b 5 b 到二進位制表示 反碼 將二進位制數按位取反,所得的新二進位制數...
負數的二進位制表示方法
有興趣的可以去原作者處看看 今天在看base64編碼轉換時,既然對負數的二進位制表示有些遺忘,在網上找了一下資料,貼出來已備在此遺忘 假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 00000101 5轉換成二制是101,...
負數的二進位制表示方法
今天在看base64編碼轉換時,既然對負數的二進位制表示有些遺忘,在網上找了一下資料,貼出來已備在此遺忘 假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 00000101 5轉換成二制是101,不過int型別的數占用4位元...