读书笔记-程序是怎么跑起来的-摘要1

1.CPU和内存是由许多晶体管组成的电子部件,简称IC
--物理上,这二者都有许多触角

2.CPU从功能上分为4个部分:寄存器、控制器、运算器、时钟
--见名知意

3.程序启动后,根据时钟信号,控制器从内存中读取指令和数据。通过对这些指令加以解释和运行,
运算器就会对数据进行运算,控制器根据该运算结果来控制计算机。
--计算过程中,可以将数据暂存至寄存器,谁还不是个宝宝

4.CPU是具有各种功能的寄存器的集合体,分为8种,分别是累加寄存器、标志寄存器、程序计数器、指令寄存器、栈寄存器、
基址寄存器、变址寄存器、通用寄存器
--前5种只有一个

5.程序的流程分为顺序执行、条件执行、循环执行三种
--和Java代码一样

6.机器指令主要是:数据转送指令、运算指令、跳转指令、call/return指令
--一看还真不多

7.IC有许多引脚,每个引脚只有两个状态,有电没电,与二进制完美符合。
--就是你了

8.一个引脚是一位,8位为一个字节

9.移位运算:将二进制的各位数值进行左右移位的运算。分为左移(<<)和右移(>>),左移运算时,空出的低位,用0补充。右移运算时,空出的高位,用符号位的数值补充
--符号位就是左一,如0000 0001,符号位是0;1000 0001,符号位是1

10.二进制的最高位(左一)为符号位,0表示正数或者0,1表示负数。

11.8位二进制的1是0000 0001,那么-1是1000 0001?
不是的,因为1+(-1)=0,但是0000 0001 + 1000 0001 = 1000 0010,明显不是0
这是因为计算机做二进制的减法运算时,实际上用的是加法运算。

12.表示负数时,需要用“二进制的补数”,补数:用正数表示负数
--绕进去了没

13.补数求法:各位数的数值全部取反,然后加1

-1,也就是要用1的补数代替
1:0000 0001
取反:1111 1110
加1后:1111 1111

所以-1的8位二进制是1111 1111

1+(-1)就是
0000 0001 
+
1111 1111 
=
1 0000 0000

溢出的高位舍去,变成了0000 0000

14.二进制的值取反加1,再与二进制的原值相加,结果为0

15.计算3-5
3-5
就是
3+(-5)

3为 0000 0011
-5为5的补数

5为 0000 0101
取反:1111 1010
加1: 1111 1011

-5即为 1111 1011

0000 0011
+
1111 1011
=
1111 1110

那么结果值1111 1110 它的最高位是1,表示负数。那么它到底是多少呢?

可以先看下它的补数

原数:1111 1110
取反:0000 0001
加1:0000 0010

0000 0010换算为10进制的话,就是2
那么1111 1110按照 原数+补数=0 的原则,换算为就是-2

所以3-5=-2

16.逻辑右移,高位补的是0,算术右移,高位补的是符号位的数值

17.逻辑运算,0为false,1为true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值