本内容为个人学习笔记,如有问题欢迎提出!

关于二进制

在我们日常生活中所使用的数学一般为十进制(满十则进一位),而计算机在处理数字时,会将其转换为二进制进行计算与处理。

  • 十进制:当数值超过九时,就向前进一位。(数值包含 0 ~ 9
  • 二进制:当数值超过一时,就向前进一位。(数值只含 0, 1

除了十进制与二进制,还有很多不同的进制,分别用于不同的领域。

进制转换

十进制转二进制

通过除二取余,逆序排序的方法完成(仅限整数)

目标数值:114

114 / 2 = 57 -- 0
57  / 2 = 28 -- 1
28  / 2 = 14 -- 0
14  / 2 = 7  -- 0
7   / 2 = 3  -- 1
3   / 2 = 1  -- 1
1   / 2 = 0  -- 1

结果数值:1110010 (逆序排序) 

小数则使用顺序排序的方法完成(小数部分)

二进制转十进制

小数点前要从右到左用二进制的每个数去乘以二的相应次方并递增,小数点后则是从左往右乘以二的相应负次方并递减。

目标数值:1101.01
PS:^ 代表次方

1*2^0 + 0 * 2^1 + 1 * 2^2 + 1 * 2^3 + 0 * 2^-1 + 1 * 2^-2

1 + 0 + 4 + 8 + 0 + 0.25 = 13.25

结果数值:13.25

原码、反码、补码

原码表示法

原码是一种简单的机器码表示法,它的第一位代表了值的正负信息。

第一位值:0为正数,1为负数。

PS: [x] 表示原码
x = 1110010  [x] = 01110010
x = -1110010 [x] = 11110010

原码即在第一位加上正负信息。

反码表示法

正数的反码即为它本身(加正负信息),负数则将值求反(0 转 1,1 转 0)

PS: [x] 表示反码
x = 1110010  [x] = 01110010
x = -1110010 [x] = 10001101

正数同原码,负数则取反。

补码表示法

正数的补码即为它本身(加正负信息),负数在取反的同时会在最低位加 1

PS: [x] 表示补码
x = 1110010  [x] = 01110010
x = -1110010 [x] = 10001110

可以理解为反码后最低位加 1 (仅负数)

Last modification:October 9th, 2020 at 04:20 pm
如果觉得我的文章对你有用,请随意赞赏