(二) 二進位制數轉成十進位制數
(三)十進位制正整數轉八進位制
【基本原理】:除基數倒取餘數法。
即:十進位制轉二進位制,基數就是2,用2整除乙個十進位制正整數,可以得到乙個商和餘數;再用2去除商,又會得到乙個商和餘數;如此進行,直到商為0;然後把先得到的餘數作為二進位制數的低位有效位,把後得到的餘數作為二級制的高位有效位,依次排列起來。所謂有效位,就是不算前導0;
注:計算機內部表示數的位元組單位是定長的,如8位,16位,32位。所以,位數不夠時,高位補0,
例如:輸入十進位制正整數:150
)//倒序輸出餘數,即為二進位制數;
這裡解釋一下這句為什麼是 (j=i-1),例如輸入150,執行完迴圈之後i=8;,但a陣列的最後乙個元素的下標是7(陣列下標從0開始),所以i要減一;
【方法】:先將十進位制負整數對應的十進位制正整數轉換成二進位制後,對二進位制逐位取反(即:0變成1,
1變成0),然後對結果加1(當然是二進位制運算);
【方法】:對小數點以後的數×2,取結果的整數部分,然後再用小數部分再×2,再取結果的整數部分……以此類推,直到小數部分為0。然後把取的整數部分按先後次序排列,就構成了二進位制小數部分的序列。
例:
0.125注:如果十進位制小數的整數部分有大於0的數時,將整數部分轉成二進位制,小數部分也轉成二進位制,加在一起就好了。
例:
150.125【基本原理】:按權展開求和法。
【方法】:首先將二進位制數補齊位數(8位),首位如果是0就代表是正整數,如果首位是1則代表是負整
數。(1).補齊位數以後,若首位是0的正整數,將二進位制中的各位數與各自的權相乘,然後求和。
例:
(2).補齊位數以後,若首位是1的負整數,就先將其逐位取反,再將二進位制中的各位數與各自的權相乘,然後求和。
例:
【方法】:按權展開求和法,但和二進位制整數轉十進位制的權不一樣。
例:
0.1101【基本原理】:與十進位制正整數轉二進位制一樣,除基數倒取餘數法。
直接看**:
#include
using namespace std;
intmain()
for(j = i -
1; j >=
0; j--
)//倒序輸出餘數,即為八進位制數;
十進位制與二進位制之間的轉換
一 正整數的十進位制轉換二進位制 要點 除二取餘,倒序排列,高位補0 例如把52換算成二進位制數,計算結果如圖 52除以2得到的餘數依次為 0 0 1 0 1 1,倒序排列,所以52對應的二進位制數就是110100。由於計算機內部表示數的位元組單位都是定長的,以2的冪次展開,或者8位,或者16位,或...
十進位制與二進位制之間的轉換
整型有4種進製形式 1.十進位制 都是以0 9這九個數字組成,不能以0開頭。2.二進位制 由0和1兩個數字組成。3.八進位制 由0 7數字組成,為了區分與其他進製的數字區別,開頭都是以0開始。4.十六進製制 由0 9和a f組成。為了區分於其他數字的區別,開頭都是以0x開始。位運算在計算機語言中運用...
十進位制二進位制轉換
一 整形裝換成兩個位元組 int value 456 unsigned char byte1 value 0xff00 8 高8位 unsigned char byte2 value 0xff 低8位 nslog byte1 x byte2 x byte1,byte2 byte1 1 byte2 c...