每天一个新知识:深入了解进制运算

1. 了解数据宽度

计算机:内存!给数据增加数据宽度。
C 和 C++ Java都需要定于数据的类型。计算机底层需要我们给这些数据定义宽度。
位 0 1
二进制: 0 1111 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 121 0 1 2 3 4 5 6 7 8 9 a b c d e f
字节 0~0xFF
字 0~0xFFFF
双字 0~0xFFFFFFF
在计算机中,每一个数据都需要给它定义类型。给它定义宽度。在内存中的宽度。

在这里插入图片描述

2.有符号数规则

最高位是符号位:1 (负数) 0(正数)
原码反码补码
编码规则
有符号数的编码规则
原码: 最高位符号位,对齐它的为进行本身绝对值即可。
反码:
a.正数:反码和原码相同
b.负数:符号位一定是1,其余位对原码取反。
补码:
a.正数:补码和原码相同
b.负数:符号位一定是1,反码+1

测试
现在我说的这些都是 8 位
如果是正数,那都是一样的。
1
原码 0 0 0 0 0 0 0 1
反码 0 0 0 0 0 0 0 1
补码 0 0 0 0 0 0 0 1
现在我说的这些都是 8 位
如果是负数
-1
原码 1 0 0 0 0 0 0 1
反码 1 1 1 1 1 1 1 0
补码 1 1 1 1 1 1 1 1
-7
原码 1 0 0 0 0 1 1 1
反码 1 1 1 1 1 0 0 0
补码 1 1 1 1 1 0 0 1

3+5=? = 11 + 101 = 1000
十进制:1 2 3 4 5
二进制 1 10 11 100 101

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