补码相关知识点
做而论道_CS:
在计算机系统中,数值,一律采用补码表示和存储。
计算机,既不使用原码反码,也不储存它们。
移位操作和原码、补码的乘除法运算规则
做而论道_CS:
乘法,乘积的位数,一定是两个乘数的位数,之和。
除法,是乘积的逆运算。
那么,被除数的位数,必须是:除数和商的位数,之和。
本题,除数是 4 位数(1101)。
被除数的位数,应该是 8 位数,这才合理。
现在仅有 4 位数(1011),就应该用 0 补齐到 8 位。
正确的补零方法是在被除数前面补,即:
1011 / 1101 = 0000 1011 / 1101。
这么补,求出的,才是正确答案。
而你的例题中,补零方法如下:
1011 / 1101 = 1011 零零零零 / 1101。
这四个零,就是在移位过程中,一位一位添上的。
看到了吗?
补完之后,就是:1011 0000 / 1101。
由此算出的是:商=1101、余数 = 0111。
他算出的,根本就不是原来的题目:
1011 / 1101,
的结果。
移位操作和原码、补码的乘除法运算规则
做而论道_CS:
你写的例题:
----------------
机器字长为 5 位,x = 0.1011、y = 0.1101,用原码加减交替法,求 x / y。
----------------
这题目,用小学的知识,立刻就能得出结果:
x / y = 0.1011 / 0.1101 = 1011 / 1101。
被除数小于除数,不够除。
因此,商 = 0000、余数 = 1011。
这才是正确答案。
浮点数的表示与运算
做而论道_CS:
讨论浮点数,有意思吗?
浮点数,与计算机的关系,也只不过是使用了四个字节而已。
它是用 32 位数,代表了更大范围的数值 N。
它们之间换算,只能说是“加密、解密”的技术而已。
加解密,都是数学知识,与计算机没有半点关系。
因此,浮点数:
既不属于《计算机组成》,
也不属于《计算机原理》。
浮点数的运算,是由 “浮点机” 实现的。
(什么是定点机、浮点机,你可别说不知道啊。)
浮点数的运算,也并不需要你来编程。
intel 从 80486 开始,就在 CPU 中集成了 FPU。
(FPU 就是浮点数运算器。)
什么:对阶、舍入、上下溢、规格化 ...,
FPU,就自动帮你完成这些运算了。
本质上,浮点数的这点事,都在硬件方面。
你还说它干嘛?
难道,你想设计 CPU 中的硬件(FPU)?
还是别抱这个幻想了。
讨论浮点数,只是计算机老师,给你挖的大坑!
不小心掉下去了,要赶紧出来才是。
浮点数怎样怎样?
其实,你只要在高级语言中,会用就行了。
使用高级语言,对计算机内部的工作过程,是不必深究的。
移位操作和原码、补码的乘除法运算规则
做而论道_CS:
可以参考:https://blog.csdn.net/baidu_33836580/article/details/144727884。
国产旗舰手机价格齐涨背后古人都怎么称呼马,原来马有这么多名字