读书笔记-程序是如何跑起来的(第二章)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_29194935/article/details/65628518
1.由于cpu中的引脚只有两种状态,0v或者5v,所以就只有0或1两种符号来表示计算机的状态

2.一个字节=8位二进制数(字节是信息计量的基本单位,位是最小单位)
3.二进制转十进制的换算:各个数位的数值乘以位权再相加

4.移位运算(计算机特有运算),通过对二进制数值的各个数位进行左右移位
左移位:低位要补位. 右移位:低位被舍弃

5.移位运算是计算机内部速度最快的运算,通过位运算来达到乘除数据的效果
6.二进制最高位一般为符号位,1表示负,0表示正
7,十进制的1表示为00000001,-1表示为11111111,只是由补数获得的结果,由于0和1以及位数的限制,导致二进制数的表示有一定的限制.像byte,1个字节,8位二进制,十进制范围是-128到127,二进制范围则表示为11111111到01111111
8,补数(用正数来表示负数)的算法.二进制位取反再加1

9.正数与负数做运算,则是将正数的二进制与负数的补数相加,而不是单纯的两个数的二进制相加,那样运算出来的结果是错误的
例如:1+(-1)

正确的计算是这样的:


例如:3-5这个运算则是将3的二进制00000011与(-5)的补数11111011相加
10.逻辑右位移(非数值二进制):位数向右移,高位补0

11.算术右移位(数值二进制):正数右移,高位补0,负数则是补数右移,高位补1
12.算术左移和逻辑左移都是低位补0(只有在右移时区分逻辑右移和算术右移)

13.符号扩充:8位扩充为16,32位等等,不管是正数或者负数,只要将符号位的数字进行高位扩充就行了

14.逻辑运算(二进制)的一些图例:

猜你喜欢

转载自blog.csdn.net/sinat_29194935/article/details/65628518
今日推荐