本文主要是介绍【学习Day1】计算机基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
✍🏻记录学习过程中的输出,坚持每天学习一点点~
❤️希望能给大家提供帮助~欢迎点赞👍🏻+收藏⭐+评论✍🏻+指点🙏
1.1 中央处理单元CPU
中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU 自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。
CPU的功能
CPU的主要功能有四个,分别是程序控制、操作控制、时间控制、数据处理
1、程序控制:这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机工作的正确性。
2、操作控制:一条指令的功能往往是由计算机中的部件执行一系列的操作来实现的。CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。
3、时间控制:时间控制就是对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。只有这样,计算机才能有条不紊地自动工作。
4、数据加工:即对数据进行算术运算和逻辑运算,或进行其他的信息处理。
CPU的组成
- 运算器(数据加工、算数运算、逻辑运算)
- 算术逻辑单元ALU:能实现多组算术运算和逻辑运算的组合逻辑电路 6+7-8 = 6+7+(-8)
- 累加器:数据暂存,通用寄存器,用来寄存计算过程中的中间数据
- 状态条件寄存器:借位、进位等存放在这里
- 缓冲寄存器:用来暂时存放由内存储器读出的一条指令或一个数据字
- 控制器(保证指令执行、处理异常事件)
- 指令寄存器:(IR,Instruction Register),用于暂存当前正在执行的指令 (二进制)
- 程序计数器:用于存放下一条指令所在单元的地址的地方 PC=PC+1
- 地址寄存器:用来保存当前CPU所访问的内存单元的地址
- 指令译码器:通过指令译码器分析二进制
- 寄存器组(保存程序的中间结果)
- 总线:计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。
练习题
在CPU中,( B )不仅要保证指令的正确执行,还要能够处理异常事件。
A. 运算器
B. 控制器
C. 寄存器
D. 内存总线
1.2 数据表示
二进制转十进制
无符号的二进制整数
从右往左依次用二进制位上的位数乘以2的n次幂的和(n大于等于0),n从0开始。
1111 = 1x23 + 1x22 + 1x21 + 1x20 = 8 + 4 + 2 + 1 = 15
带符号的二进制整数
除去最高位的符号位(1为负数,0为整数),其余与无符号二进制转化十进制方法相同。
1 111 = -( 1x22 + 1x21 + 1x20) = -7
小数二进制数
从小数点后第1位上的二进制数字乘以2的负一次方
加上第2位上的二进制数字乘以2的负二次方,
以此类推第n位上的二进制数字乘以2的负n次方。
练习题
将二进制1100.101转化为十进制,结果是()。
A. 12.625
B. 12.75
C. 24.625
D. 24.75
1x23 + 1x22 + 0x21 + 0x20 = 12
1x2-1 + 0x2-2 + 1x2-3 = 0.625
十进制转二进制
转化整数
将整数部分除 2,取余当商不为0时,将商作为被除数,继续除2取余直至商位0,将余数按从下到上的顺序记录
转化小数
将小数部分乘2取整,如果结果仍有小数就继续乘2,直到小数部分为0,或者已经达到了精度要求,将取整的结果按从上到下的顺序记录
练习题
将十进制11.75转化为二进制,结果是(A)
A. 1011.11
B. 1010.11
C. 1010.01
D. 1011.01
1x23 + 0x22 +1x21 +1x20 = 11
1x2-1 +1x2-2 = 0.75
1.3 数据表示
原码
最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。
数值0的原码表示有两种形式:[+0]原=0 0000000,[-0]原=1 0000000
以带符号位的四位二进制数为例:1010,最高位为1表示这是一个负数
其它三位010,即022+121+0*20=2
所以1010表示十进制数-2
练习题
若机器字长为8,则+127和-0.5分为表示为( B )。
A. 0 1111111,0 1000101
B. 0 1111111,1 1000000
C. 1 1111111,0 1000000
D. 1 0000000,1 1000101
反码
原码最大的问题就在于一个数加上它的相反数不等于0
0001+1001=1010,1+(-1) =-2
正数的反码 还是等于原码;
负数的反码 就是它的原码除符号位外,其它位按位取反。
数值 0的反码表示有两种形式:[+0]反=0 0000000,[-0]反=1 1111111
补码
正数的补码 等于它的原码
负数的补码 等于反码+1 或 等于 (2^机器字长-|负数|) 原码
数值0有唯一的编码:[+0]补=0 0000000,[-0]补=0 0000000
例:若机器字长为4,计算6-2
计算机中均采用补码进行加减运算
练习题
如果“2X”的补码是“90H”,那么X的真值是( B )(2016上半年试题)
A. 56
B. -56
C.72
D. -72
“90H”中的H为十六进制表示,一个数占四个位,“90”换算成二进制数就是“1001 0000”,这是补码。反码+1是补码,用这个补码减1就是补码。 1001 0000 - 1 =1000 1111(借位减,反码),换成原码,最高位符号位直接下来,就是1111 0000,二进制换算成十进制 12^6 +12^5 + 12^4 + 02^3 + 02^2 + 02^1 + 0*2^0 = 112,符号位下来就是-112,然后2X=-112,解方程,X = -56
计算机系统中采用补码表示有符号的数值,( D )。(2022下半年试题)
A.可以保持加法和减法运算过程与手工运算方式一致
B.可以提高运算过程和结果的精准程度
C.可以提高加法和减法运算的速度
D.可以将减法运算转换为加法运算从而简化运算器的设计
计算机系统中采用补码表示有符号的数值,( B )。(2022下半年试题)
A.可以保持加法和减法运算过程与手工运算方式一致
B.可以提高运算过程和结果的精准程度
C.可以提高加法和减法运算的速度
D.可以将减法运算转换为加法运算从而简化运算器的设计
移码
移码:补码的符号位取反
● 移码的主要用途是表示浮点数的指数(阶码)
正数负数原码最高位为符号位0表示正号其他位存放该数的二进制的绝对值最高位为符号位1表示负号其他位存放该数的二进制的绝对值反码等于原码按它的原码,除符号位外,按位取反补码等于原码反码+1或(2机器字长-|负数|)原码移码补码的符号位取反
浮点数
N=尾数×基数^阶码(指数)
浮点数的表示格式:
阶符+阶码(移码)+数符+尾数(补码)
- 尾数:用补码表示,位数决定数的有效精度,位数越多精度越高
- 阶码:用移码表示,位数决定数的表示范围,位数越多范围越大
- 对阶时,小数向大数看齐
- 对阶是通过较小数的尾数右移实现的
练习题
浮点数的表示分为阶和尾数两部分。两个浮点数相加时,需要先对阶,即( D )(n为阶差的绝对
值)。(2018上半年试题)
A.将大阶向小阶对齐,同时将尾数左移n位
B.将大阶向小阶对齐,同时将尾数右移n位
C.将小阶向大阶对齐,同时将尾数左移n位
D.将小阶向大阶对齐,同时将尾数右移n位
对于长度相同但格式不同的两种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其它规
定都相同,则二者可以表示数值的范围和精度情况为( C )。(2022下半年试题)
A.二者可表示的数的范围和精度相同
B.前者所表示的数的范围更大且精度更高
C.前者所表示的数的范围更大但精度更低
D.前者所表示的数的范围更小但精度更高
这篇关于【学习Day1】计算机基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!