进制转换与数字存储实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进制转换与数字存储实例相关的知识,希望对你有一定的参考价值。
说明:本实例基于C语言编写
一、进制转换
1)、十进制转其它进制
- DEC转BIN:N=25
(25)2=11001
- DEC转OCT:N=125
(125)8=175
- DEC转HEX:N=2581
(2581)16=A15
2)、其它进制转十进制
- BIN转DEC:(1100101)2
(1100101)2=1x26+1x25+0x24+0x23+1x22+0x21+1x20=64+32+0+0+4+0+1=101
- OCT转DEC:(2612)8
(2612)8=2x83+6x82+1x81+2x80=1024+384+8+2=1418
- HEX转DEC:(A46C)16
(A46C)16=10x163+4x162+6x161+12x160=40960+1024+96+12=42092
3)、二进制与八进制互转
- BIN转OCT:(011100100110)2
(011100100110)2=(3446)8
- OCT转BIN:(7514)8
(7514)8=(?111101001100?)2
4)、二进制与十六进制互转
- BIN转HEX:(0101001011)2
(0101001011)2=(14B)16
- HEX转BIN:(B287)16
(B287)16=(?1011001010000111?)2
5)、八进制与十六进制互转
OCT转HEX:OCT转BIN转HEX
HEX转OCT:HEX转BIN转OCT
二、数字存储
1)、无符号整数原码存储:N=126
2)、有符号正整数原码存储:N=126
参照上一个例子
3)、有符号负整数补码存储:-106
(106)2=00000000000000000000000001101010
如果用4字节(32位来存储)的话,(106)补=11111111111111111111111110010110
将补码存储的有符号负整数还原为十进制数
- 对补码表示的数进行补码运算得到这个十进制数的绝对值的二进制表示:01101010
- 将该二进制数转换为十进制并添加符号(看最高位)即可:-10
补码运算
4)、单精度浮点数存储:余127码
N = - 12.8(精度2位)
- 符号位S=1(负数)
- 转化为二进制表示:(12.8)2=(1100.1)2,转换为二进制的小数部分精度为1
- 规范化:(1.1001)x23
- 指数E=3+127=130,二进制为:(130)2=(10000010)2
- 尾数M=(10010000000000000000000)2
- 结果:1 10000010 10010000000000000000000
5)、双精度浮点数存储:余1023码
操作方法和单精度浮点数的存储一直,不同的是,双精度浮点数的指数E用11位存储,尾数用52位存储。
以上是关于进制转换与数字存储实例的主要内容,如果未能解决你的问题,请参考以下文章