数制见的转换

在C语言中,整数有三种表现形式:十进制、八进制、十六进制。

其中以数字0开头,由0~7组成的数是八进制。

以0X或0x开头,由0~9,A~F或a~f 组成是十六进制。

除表示正负的符号外,以1~9开头,由0~9组成是十进制。

1.十进制:除表示正负的符号外,以1~9开头,由0~9组成。如,128,+234,-278。2,八进制:以0开头,由0~7组成的数。如,0126,050000.3,十六进制:以0X或0x开头,由0~9,A~F或a~f 组成。如,0x12A,0x5a000。

二进制转8进制或 16进制可以直接用 BCD码就是8421算法。有效位乘以 BCD码,如101101001(2)转换8进制就是3位一组先分开101 101 001 然后分别算出第一组101=1乘4加0乘2加1乘1。结果就是5(8)剩下两组一样的方法结果就是551(8)。
二进制转16进制方法同,以101101001为例,从右到左,每4位一组,不足的位数用0补齐,则是 0001 0110 1001
0001=8*0+4*0+2*0+1*1=1 0110=8*0+4*1+2*1+1*0=6 1001=8*1+4*0+2*0+1*1=9, 所以二进制101101001转换成16进制就是169。


八进制化为二进制   规则:按照顺序,每1位 八进制数改写成等值的3位二进制数,次序不变。   例: (17.36)8 = (001 111 .011 110)2 = (1111.01111)2

八进制转换成十六进制
八进制转换成十六进制算法通常有两种方法,一种是先将 八进制转换成二进制,再将 二进制转换成十六进制,一种是先将 八进制转换成十进制,再将十进制转换成十六进制。假如 八进制数为347,先用第一种方法,转换成二进制为011,100,111,再转换成十六进制为E7;第二种方法先转换成十进制为231,再将十进制转换成十六进制为E7。

二进制转换十进制
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:101100100,转换为10进制为:356
用横式计算
0×2 0+0×2 1+1×2 2+0×2 3+0×2 4+1×2 5+1×2 6+0×2 7+1×2 8=356
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1×2 2+1×2 5+1×2 6+1×2 8=356
4+32+64+256 =356

八进制转换十进制
八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:839,具体方法如下:
可以用横式直接计算:
7×8 0+0×8 1+5×8 2+1×8 3=839
也可以用竖式表示
第0位 7×8 0=7
第1位 0×8 1=0
第2位 5×8 2=320
第3位 1×8 3=512

十六进制转换十进制
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是数β (β大于等于0,并且β小于等于 15,即:F)表示的大小为 β×16的N次方。
假设有一个十六进数 2AF5
直接计算就是:
5×16 0+F×16 1+A×16 2+2×16 3=10997 [1]  
也可以用竖式表示:
第0位: 5×16 0=5
第1位: F×16^1=240
第2位: A×16 2=2560
第3位: 2×16 3=8192

由于 十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。
比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。所以我们可以先除以16,得到16进制数:
被除数 计算过程 商 余数
1234 1234/16 77 2
77 77/16 4 13 (D)
4 4/16 0 4
结果16进制为:4D2
然后我们可直接写出4D2的二进制形式:
0100
1101
0010













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值