位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言基礎知識—數值轉換

提問人:ylm發(fā)布時間:2020-09-25

數字的四種表現形式:

①:二進制:所有數字由0,1構成,逢二進一,二進制數中不會出現2。

②:八進制:以數字0(注意不是以字母O,o)開頭,所有數字由0~7構成,逢八進一,八進制數中不會出現8。 例:0112,0123,077等

③:十進制:所有數字由0~9構成,逢十進一,十進制數中不會出現10。 例:0,12,-15等

④:十六進制:以0x或者0X(數字0加字母x)開頭,所有數字由0~9,A~F(或者a~f)構成,逢十六進一(其中A、B、C、D、E、F分別代表10、11、12、13、14、15) 例:0x4A、0X14c7等

 

在計算機內部,數字均以二進制形式表示和存放,用戶輸入的普通十進制數字都要被計算機轉換成二進制才能在計算機內部存儲,同樣計算機的運算結果也為二進制,一般要將其轉換成十進制數再輸出給用戶閱讀,這種轉換通常由計算機自動實現。

 

1)將十進制轉換二進制、八進制和十六進制

除法:將十進制數除以2,記錄余數,得到的商繼續(xù)除以2,直到商為0,然后將各次相處所得的余數從后往前逆序排列,所得余數數字序列就是該十進制數對應的二進制數。八進制和十六進制轉換方法同上。

例:十進制數13轉換成二進制數的值為1101,轉換八進制為015,轉換成十六進制為D.

2)將二進制、八進制和十六進制轉換成十進制

乘積求和:將二進制的每一位從低位到高位(右邊為低位,左邊為高位)分別乘以20,21,22。。。。,然后將這些積求和。

3)二進制與八進制、十六進制數之間的相互轉換

①:二進制轉八進制:從右往左每三位一組轉換成十進制數,將所得數據組合就是對應的八進制數(注意:高位不足三位補零)。 例:(010 110 111)2=(267)8

②:二進制轉十六進制:從右往左每四位一組轉換成十進制數,將所得數據組合就是對應的十六進制數(注意:高位不足四位補零)。 例:(0101 1011)2=(5B)16

③:八進制轉化二進制:每一位數字轉換為三位二進制數字 例:(13)8=(001 011)2= (注意:去掉前面的兩個00,因為0在高位沒有意義) ④:十六進制轉化二進制:每一位數字轉換為四位二進制數字 例:(E3)16=(1110 0011)2

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部