C語言基礎——進制轉換 / 數據表示

第一部分:進制轉換


二進制:由0~1構成,逢2進1

八進制:由0~7構成,逢8進1

十六進制:由0~9、A~F構成,逢16進1


兩個基本概念

基數:n進制基數爲n

123.4 = 1*10^2 + 2*10^1 + 3*10^0 + 4*10^-1 

位權:小數點左邊第k位位權爲   基數^k-1

    小數點右邊第k位位權爲   基數^-k


其他進制轉十進制(按權展開求和法)

十進制  123.4 = 1*10^2 + 2*10^1 + 3*10^0 + 4*10^-1 

二進制  1011.1 = 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 + 1*2^-1= 11.5

八進制  123.4 = 1*8^2 + 2*8^1 + 3*8^0 + 4*8^-1= 83.5

十六進制 123.4 = 1*16^2 + 2*16^1 + 3*16^0 + 4*16^-1 = 291.25


十進制轉其他進制

整數部分 :基數除法,倒序取餘

小數部分 :基數乘法,順序取整


十進制 - > 二進制

整數  除2倒序取餘 (以4位爲單位,不足高位補0)


小數  乘2正序取整 (遇到整數取1,小數再乘2)



其他進制間相互轉換

二進制轉八進制(3位二進制  =  1位八進制    對應“421”)

0101 1010  ==  132

000=0    100=4

001=1    101=5

010=2    110=6

011=3    111=7

二進制轉十六進制(4位二進制  =  1位十六進制    對應“8421”)

0101 1010 == 5A

0000=0      1000=8

0001=1      1001=9

0010=2      1010=A

0011=3      1011=B

0100=4      1100=C

0101=5      1101=D

0110=6      1110=E

0111=7      1111=F


第二部分:數據表示


整形數據的分類

1.無符號整型數據:所有位均表示大小。

N位無符號整型數據表示的取值範圍爲:0~2N-1

2.帶符號整型數據:最高位表示符號:0爲正、1爲負。常用原碼、反碼、補碼錶示。

正數:三碼同一。

例:已知x=+76D ,寫出x的三碼錶示(8位)

解:x=+76D=+1001100B

因爲x>0

所以:[x]原=[x]反=[x]補=01001100B

負數:


例1:已知x= -76D ,寫出x的三碼錶示(8位)

解:x= -76D= -1001100B

[x]原=1 1001100B 

[x]反=1 0110011B  (原碼取反)

[x]補=1 0110100B  (末位加一)

例2:已知:[x]原=[y]反=[z]補=1100 1011B,求出x、y、z的大小關係。

[x]原=1100 1011B                x = -100 1011B

[y]反=1100 1011B

[y]原=1011 0100B                y = -011 0100B

[z]補=1011 0100B 

[z]原=1100 1100B                z = -100 1100B

y > x > z



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章