《程序是怎样跑起来的》第二章读后感

1.CPU的引脚只能表达两种状态(0V,5V),这个特性决定了计算机的信息数据只能用二进制数来处理
2.二进制数转化成十进制数的方法:各数位的数值和位权相乘后 相加
3.移位运算: 左移运算和右移运算
左移运算: 无论正负值,左移后空出来的低位补0
右移运算: 逻辑运算 和 算术运算
逻辑运算(图形模式),正值,右移后最高位补0
算术运算(数值),负值,右移后在最高位补1
4.乘除运算:
乘法运算:将二进制数左移后就会变成原来的2倍(1位),4倍(2位),8倍(左移3位)……
除法运算:将二进制数右移后就会变成原来的1/2,1/4,1/8……
5.补数与符号位
符号位
(1)符号位:二进制数中表示负数值时,一般会把最高位作为符号来使用,因此把最高位称为符号位
(2)符号位是0时表示正数,符号位是1时表示负数 eg:-1的8位二进制数为11111111
补数
(1)在表示负数时就需要使用“二进制的补数”,补数,就是用正数来表示负数
(2)获取补数?需讲二进制数的各数位的数值全部取反,再讲结果加1(取反+1)
eg:用8位二进制数表示-1
1(十进制)→00000001→求它的补数→各数位取反后加1
1(十进制)→00000001(原始数值)→11111110(取反)→11111111(加1,获取补数完成)
牢记:将二进制数的值取反后加1的结果 和原来的值相加,结果为零,这一法则。
6. 符号扩充
符号扩充:在保持值不变的前提下,将其转换为16位或32位的二进制数(此处以8位二进制数为例)
不管是正数还是用补数表示的负数,都只需用符号位的值(0或1)填充高位即可
eg:01111111 →0000000001111111
eg:11111111 →1111111111111111
经过第二章的学习,我理解了左移右移运算,就懂得了它们的区别,我还了解了补数,还有符号扩充以及真值表,收获满满。

posted @ 2019-02-20 10:53  S漂浮的云  阅读(156)  评论(0编辑  收藏  举报