c45eb7fa16bec7d259e5b8d096377a9e.jpg

注意:本文需要一定的二进制基础,不会过度赘述细节。

1,十进制加减[整数]

12+3=15
34+2=36
23-5=18
。。。。。。

2,十进制与二进制互转

十进制转二进制

十进制数:27
2 27
2 13 1
2 6 1
2 3 0
1 1
从下往上读:1 1011 【空格是为方便阅读】

二进制转十进制

二进制数对应的十进制数
举例:
1=1,10=2,100=4,即:12^0=1,12^1=2,12^2=4
10 0101 = 1
2^5+12^2+12^0=32+4+1=37

3,二进制加减[8位]

规则

进位规则:逢二进一
借位规则:借一当二

二进制相加

14+7【十进制】 ==》1110+111【二进制】
0000 1110
0000 0111
——————-
0001 0101 —》21

二进制相减[二进制运算用补码]

21-8【十进制】=21+(-8)
21:10101—》0001 0101
-8:
原码:0000 1000
补码:取反:1111 0111,加一:1111 1000
0001 0101
1111 1000

———————
0000 1101 —》13

4,十进制加减[小数]

小数点对应相加减
1.23+1.2=2.43
1.4-0.7=0.7
125.25-25.5=99.75
。。。。。。

5,十进制与二进制互转[浮点数(单精度)]

十进制小数转二进制数

正数[详解]

125.25【125.25 = 125 + 0.25】
1,得到非规格化二进制浮点数
拆成俩部分:125,0.25
125:
2 125
2 62 1
2 31 0
2 15 1
2 7 1
2 3 1
1 1
得到125的二进制数:111 1101
0.25:
0.25 2 = 0.5 0
0.5
2 = 1 1
得到0.25的二进制数:0.01【从上往下读】
合并得出:111 1101.01

2,规格化二进制浮点数
规格化:1.1111 0101 2^6 ==> 1.1111 0101 2^110【注意:6对应的二进制数:110】

3,由规格化二进制浮点数得到
符号位:0【正数:0,负数:1】
阶码位:110 + 0111 1111【127】= 1000 0101【对应的十进制数:133】
尾数位:1(隐藏位) 1111 0101 0000 0000 0000 000
4,最终结果:
125.25 ==》0100 0010 1**111 1010 1000 0000 0000 0000**

负数

-25.5【-25.5 = -(25 + 0.5)】
1,
拆成俩部分:25,0.5
25:
2 25
2 12 1
2 6 0
2 3 0
1 1
得到25的二进制数:1 1001
0.5:
0.5 2 = 1 1
得到0.5的二进制数:0.1
合并得出:-1 1001.1
2,
规格化:-1 1001.1 ==> -1.1 0011
2^4 ==> -1.1 0011 2^100【注意:4对应的二进制数:100】
3,
符号位:1
阶码位:100 + 0111 1111【127】= 1000 0011【131】
尾数位:1(隐藏位) 1001 1000 0000 0000 0000 000
4,最终结果:
-25.5 ==》1**100 0001 1**100 1100 0000 0000 0000 0000*

二进制数转十进制小数

正数

同下面负数,自己动手哦。

负数

举例:
二进制浮点数:1100 0001 1000 0000 0000 0000 0000 0000
1,
符号位:1
阶码位:1000 0011
尾数位:1(隐藏位)000 0000 0000 0000 0000 0000
2,还原阶码:1000 0011 - 0111 1111 = 100【注意:借一当二】
3,-1.0 * 2^4【二进制数100 的十进制数是4】
4,结果:-16

6,二进制加减[浮点数(单精度)]

正数加正数

同下面正数加负数,自己动手哦。

正数加负数

125.25 - 25.5【采用二进制浮点数运算】
由 内容5 可得
125.25 - 25.5 = 125.25 + (-25.5)
已知
125.25
符号位:0
阶码:133
尾数位:1(隐藏位) 1111 0101

-25.5
符号位:1
阶码:131
尾数位:1(隐藏位) 1 0011

1,-25.5为负数,11 0011为原码,需要转为补码才能参与运算,则补码为001101
2,其次,阶码不一致,需要对阶,小转大,阶码向右移动2位,且高位补1,故-25.5的二进制补码为1100 1101
3,尾数求和,符号位也要参与
符号位 尾数位
0 1111 1010 1000 0000 0000 0000
1 1100 1101 0000 0000 0000 0000
—————————————————————
0 1100 0111 1000 0000 0000 0000
4,得到
符号位:0
阶码位:131
尾数位:1100 0111 1000 0000 0000 0000
5,结果
1.100 0111 12^6 ==> 110 0011.11
==> 1
2^6 + 12^5 + 12^2 + 12^1 + 12^(-1) + 1*2^(-2)
==> 99.75
即 125.25-25.5=99.75

宁静致远,天道酬勤。
书上得来终觉浅,绝知此事要躬行。
**