计算机组成原理4小时速成2:计算机运算方法,原码,反码,补码,移位,加法减法,乘除法
2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开
测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库
这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!
考网警特招必然要考操作系统,计算机网络,计算机组成原理,由于备考时间不长,你可能需要速成,我就想办法自学速成了,课程太长没法玩
系列文章:
【1】计算机组成原理4小时速成1:五大组成部分:运算器,控制器,存储器,输入设备输出设备
文章目录
- 计算机组成原理4小时速成2:计算机运算方法,原码,反码,补码,移位,加法减法,乘除法
- @[TOC](文章目录)
- 计算机组成原理:计算机的运算方法
- 无符号数,有符号数
- 原码,反码,补码
- 定点数和浮点数
- 浮点数的规格化形式
- IEEE754表示浮点数的标准
- 定点计算:移位运算
- 算术移位,符号位不动
- 算术移位和逻辑移位的区别,算术移位是符号位不变,逻辑移位是整体移动
- 加减法运算
- 溢出判断,字长不够,俩数想加减,可能会溢出
- 乘法运算
- 除法运算类似
- 总结
文章目录
- 计算机组成原理4小时速成2:计算机运算方法,原码,反码,补码,移位,加法减法,乘除法
- @[TOC](文章目录)
- 计算机组成原理:计算机的运算方法
- 无符号数,有符号数
- 原码,反码,补码
- 定点数和浮点数
- 浮点数的规格化形式
- IEEE754表示浮点数的标准
- 定点计算:移位运算
- 算术移位,符号位不动
- 算术移位和逻辑移位的区别,算术移位是符号位不变,逻辑移位是整体移动
- 加减法运算
- 溢出判断,字长不够,俩数想加减,可能会溢出
- 乘法运算
- 除法运算类似
- 总结
计算机组成原理:计算机的运算方法
无符号数,有符号数
真的值,带正负号的数
机器数,是将正负号用二进制表示
0:正数
1:负数
原码,反码,补码
实际计算机都是采用补码表示数字,然后加法运算
反码:符号位不动,后面的全部取反——使用少
正数原反补相同不变
负数不同
补码是重点
负数的补码是,反码+1
负数补码再求补码,不就是原码吗
两次求补码就是原码
其补码
70
100 0110
补码的符号位取反,就是移码,表示整数
已知x补码,快速求-x的补码
符号位,数值位全部取反,末尾加1
定点数和浮点数
小数点,固定在某个位置
符号位后面:小数
末尾的话,就是整数
2的n次方,相当于移位
乘2就是要向左移动1位
S是小数
最好还是有效表示
最好就纯小数,0.1xxxx
这种就是规格化的小数
了解
浮点数的规格化形式
减少存储空间,扩大位
r=2时,尾数最高位为1
小数点左移,那就相当于基数扩大了,阶码需要-1
小数点右移,那就相当于基数缩小了,阶码需要+1
用来对冲
正常情况下,我们只用r=2
转小数,乘2取整,转化为小数二进制
定点的话,固定小数点,10位小数部分
规格化的浮点数,需要左移,那阶码要减
定点机器数那就是原反补码表示
浮点机器数,
符号位1,0010是阶码,共5位;然后是原反补码放上
浮点数的阶码,不管你正负数,阶码部分符号位不变,其余位均是取反,补码是要加1的
这点以前我是不清楚的,现在就学会了
58=32+16+8+2
即111010
定点的话,整数是前面补0,小数是后面补0哦
浮点数规格化,需要变0.1xxx
那就要将小数点左移动6位,0.111010,所以阶码需要加6
定点机器数的话,负数,原反补码骚操作搞就是了,符号位放好
机器数中,阶码要搞成移码,骚啊
尾数用补码
阶码5位哦,别错了
移码是啥呢,就是符号位也要取反
这就明白了,舒服
IEEE754表示浮点数的标准
最高位是数的符号
其他的不变
了解即可
定点计算:移位运算
主要考计算
计算机怎么加减?
怎么乘除?
左移1位乘2
右移1位除2
运算器ALU是加法器,乘除就是移位配合
算术移位,符号位不动
其余的可以移动
反码的话,移动是补1,因为原码是取反得来的
补码:左移的话,右边补0,右移的话,左边补1
这个左神讲过
骚得很……
机器数8位字长,1个符号位
26=16+8+0+2+0
11010
左移1位,乘2相当于,56看看是不是
右边补个0【原码】
反码左移补1
补码左移右边补0
补码右移左边补1
使劲移动位数太大可能顶不住
补码不同哦
-26来看看
左移右边补0
右移左边补1
补码的话,左移,右移都是OK的
反码的话,左右移动都是补1的哦,反码是原码的取反
算术移位和逻辑移位的区别,算术移位是符号位不变,逻辑移位是整体移动
加减法运算
进位别忘了,丢了就溢出了
计算机是二进制的补码运算
不是人的十进制
8位的话,范围更大了
溢出判断,字长不够,俩数想加减,可能会溢出
异或:同为0,不同为1
双符号位相同OK
双符号位不同gg
最高符号位是真
乘法运算
符号位异或搞定
乘数b来决定a是否要被加,而且每次要a左移
算法代码咱们写过这个算法
乘数b看末尾那个位
是1,加a
部分积ans=0,作为乘法结果
利用部分积右移,补充乘数b的左边,这样去玩
你看部分积ans右移,挤掉b的右边那个1
看看b此时情况,决定a是否被加
然后将ans右移1位,挤掉b的0,整体相当于逻辑右移
此时b的最低位0,ans不加
得到的结果ans
ans继续右移1位,把b的0挤掉,这样的话,b最低位1,加a给ans
得到的结果,还需要右移1位,这样ans才是我们乘法的结果哦
再看一个例子
这也不难
好说
移位多少次?那就是看b的位数
好说
除法运算类似
了解,计算机自己会做,咱们了解,考网络警察搞数据分析的话,用不着
重要是数据分析的那些东西
加减交替?搞除法
不管,继续复习别的章节,这个不是重点
为啥呢?
(一)计算机组成原理【学习中……】
1.计算机硬件的发展历程
2.计算机软件的分类
3.计算机硬件的基本组成
4.计算机软件和硬件的关系
5.计算机的工作过程
6.★计算机的性能指标
7.★进位计数制及其相互转换
8.★字符和字符串
9.浮点数的表示和运算
10.存储器的分类
11.存储器的性能指标
12.虚拟存储器
13.指令的基本格式
14.常见数据寻址方式
15.CISC和 RISC 的基本概念
16.CPU 的功能和基本结构
17.总线标准
18.★★常见编码的识别与转换
(1)ASCII编码
(2)Base64编码
(3)shellcode编码
(4)Quoted-printable编码
(5)XXencode编码
(6)UUencode编码
(7)URL编码
(8)Unicode编码
(9)Escape/Unescape编码
(10)HTML实体编码
(11)莫尔斯电码(Morse Code)
打五角星的是重点,其余的知道就行考试涵盖的内容很多的
总结
提示:重要经验:
1)
2)学好oracle,操作系统,计算机网络,计算机组成原理,即使经济寒冬,整个测开offer绝对不是问题!同时也是你考公网络警察的必经之路。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。