原码和补码的加减运算

您所在的位置:网站首页 补码的加减运算法则 原码和补码的加减运算

原码和补码的加减运算

2024-06-10 21:39| 来源: 网络整理| 查看: 265

定点数(原码、反码、补码、移码)

做而论道_CS: 求负数补码的公式,已经知道了:   [负数]补码 = 256 + 该负数。 求正数(以及零)的补码,也可用这个公式:   [正数]补码 = 256 + 该正数。 由于加上 256,将会出现进位。 将进位舍弃之后,那就是:   [正数]补码 = 该正数。 这就证明了:正数和零的补码,就是该数字本身。   这就不用再举例说明了吧? ---------------------- 另外,由补码换算到十进制数,也极其简单。 你只需记住:【补码首位的权,是负数】。 一般的八位二进制数,各个位的权是:   128、64、32、16、8、4、2、1; 如果是八位的补码,各个位的权则是:  -128、64、32、16、8、4、2、1。   例如,有一个补码:1110 0001, 它代表的十进制是:-128 + 64 + 32 + 1= -31。 再看,另一个补码:0110 0001, 它代表的十进制是:0 + 64 + 32 + 1 = +97。 仅仅使用【进制转换】,不就完事了! ---------------------- 那么,所谓的:  机器数真值符号位原码反补码正数三码相同  负数取反加一符号位不变模符号位也参加运算 ... 这一大堆乱七八糟的概念,不都是垃圾嘛! 进位,是小学二年级的知识点吧? 舍弃进位,很难理解吗? 老外竟然能弄出那么大一堆概念! 谁要是跟老外学算术,立刻,就掉沟里去了! 我们的计算机老师,也不懂数学,只知道跟风。 一天一天的乱讲,真是毁人不倦坑人不浅! 这些老师,捡个鞋拔子就当做玉如意了。 天天蒙骗学生,自己赚取名声和丰厚的讲课费。 顺便再抓几个学生挂科,抖一下威风! 现在知道我们缺芯片用的原因了吧!

定点数(原码、反码、补码、移码)

做而论道_CS: 虽然,计算机使用的,是二进制数。 作为数字,二进制、十进制,都是一样的,都是数。 作为数字,它们就是数,并不是什么“原码反码补码”。 如果用数字,代表“非数字”,才能叫做 “码”。 如:学号、门牌车牌电话性别英文汉字声音颜色 ... ----------------- 补码的特点,不仅是在二进制数中才有。  任何进制的数字,都是相同的。 比如两位十进制数,范围是:0 ~ 99。 将有:27 + 99 = (一百) 26    27 - 1 = 26 如果你忽略进位,只保留两位数,  这两种算法,结果就是一样的。 即,舍弃了进位:  加法,就可以当做减法。  正数,就能当做负数。 在计算机中,舍弃进位,会怎么样?  可以简化硬件。  只用一个加法器,便可走遍天下! ----------------- 计算机的字长,是固定值。 八位机,只会做:  八位 + 八位 = 进位、八位的和。 八位二进制数:0000 0000 ~ 1111 1111。 相当于十进制:0 ~ 255。 如果出现进位,就是 256。 那么,27-1 = 26,八位机将如下计算:    0001 1011   + 1111 1111 --------- (进 1) 0001 1010 舍弃了进位,你就用加法,实现了减法运算! ----------------- 在两位十进制时,舍弃进位,就是减去了一百。 所以,加 99,再减 100,当然就是-1。 在八位二进制时,舍弃进位,就是减去了 256。 那么,加 255,再减 256,显然也是-1。 所以:255 (1111 1111),就相当于-1。 同理:254 (1111 1110),就是-2。 还有:253 (1111 1101),就是-3。    。。。 最后:128,就是-128 了。 以上这些正数,就是计算机专家 “发明” 的补码。 而加上 0 ~ 127,并不会出现进位,也就不用舍弃了。 那么, 0 ~ 127,就当不成负数了,只能当正数使用。

浮点数

做而论道_CS: 其实,对浮点数的理解,不需要弄这么麻烦的。 上过初一的,都知道科学记数法:   N = ± 绝对值 × 10^e。 绝对值,当然是正数,由一位整数、多位小数组成。 e 则是以 10 为底的指数。 将此法,引入到计算机中,就是 “浮点数” 了:   N = (-1)^S × 2^E × (1.) M。 其中的 S 是符号位;  E,称为阶码 ,它是:指数 e + 127;  (1.)M,就是绝对值,它是一个无符号数。 把 “科学记数法” 中的“指数 e、绝对值” 拿来换算一下,所谓的 “浮点数” 就出来了。 反向换算,也不难吧。 浮点数的运算:  加减时,要先对阶,再用绝对值来加减。  相乘时,就是绝对值相乘除、阶码相加减。 加减乘除有了结果后,还需要整理成规范的形式。 其实,计算机中的浮点数运算,是由 “浮点机” 实现的。 (例如 80x86 系统的中的 “协处理器”。) 对阶、运算、上下溢、规格化等等,都是由硬件完成的。 这些步骤,也不需要你来编程。 硬件的工作原理及其设计,就由 “电子信息工程专业” 去干吧。 计算机专业的老师,就不要在这里哗众取宠了。 计算机专业的学生,学了这些,也是 P 用都没有的。 学了半年,也还是隔靴搔痒而已。 计算机专业的学生,了解一点 “定点数、补码” 就行了。 当然,没上过中学又想装大瓣蒜的人,学学也无妨。

定点数的溢出判断

做而论道_CS: Intel 的 CPU 中,有个溢出标志位 OF。 一旦运算出现溢出,OF 就会自动置一, 掌握了这个标志位,就不用讨论别的了。

定点数的溢出判断

做而论道_CS: 实际上,变形补码、双符号位,都是不存在的。 用一个符号位,就能横行天下了。 目前,还没有听说,谁家的 CPU 使用双符号位。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3