十進位制負數轉換為二進位制、八進位制、十六進位制
直接進入主題....
問題:-3如何轉換成二進位制?
首先我們將+3轉換成二進位制,假設是為int型別(32位)的,那麼二進位制表示為:
0000 0000 0000 0000 0000 0000 0000 0011 --這稱之為原碼:一個整數的絕對值的二進位制表示稱之為原碼。
負數轉換成二進位制分為3步:
1、首先將負數轉換為對應的原碼
-3的原碼為(也就是+3轉換成二進位制後的字串):
0000 0000 0000 0000 0000 0000 0000 0011
2、再將原碼的每一位做取反操作得到反碼。 取反操作:0變為1 1變為0; 取反後的結果即為:
1111 1111 1111 1111 1111 1111 1111 1100
3、將反碼+1得到補碼
1111 1111 1111 1111 1111 1111 1111 1101
現在用windows自帶的計算器來驗證一下,Win+R 輸入calc,將計算器改為程式設計師,選擇雙字(4位元組,32位)
-3的十進位制以及二進位制表示:
負數轉換成八進位制、十六進位制,只需在補碼(二進位制)的基礎上,3位合成一位計算,或者4位合成一位計算
-3的轉換成二進位制為:
1111 1111 1111 1111 1111 1111 1111 1101
八進位制則將-3的二進位制從右至左每3位為一個單元,不夠三位用0補 即:
011 111 111 111 111 111 111 111 111 111 101
計算每一個單元,結果為:37777777775
十六進位制則將-3的二進位制從右至左每4位合併為一個單元,即:
1111 1111 1111 1111 1111 1111 1111 1101
計算後為: FFFFFFFD