id="c_n9"width="1920"height="990"style="position: fixed; top: 0px; left: 0px; z-index: -1; opacity: 0.5;">

对于补码的一些理解

补码

相关概念&理解

补码其实就是计算机中为了解决减法的问题所提出的相关的问题,而这种解决的方法其实也就涉及到了mod的运算,假如在mod 12下,那么11(mod 12) = -1(mod 12),这种其实也就是数论中所讲述的同余式

那么这些东西在二进制中其实也是同样适用的,现在假定位长是5bit,对于负数-15 = (11111)2 ,那么在计算机中所采用的其实也是模运算,这里mod的数其实就是这里最高位所代表的二进制的数据,譬如这里就是mod(24),那么对于-15而言,它其实也就是对应着-15 + 24 ,这两者其实在mod(24)是等价的。同时它的补码也就是1(不考虑符号位),但是符号位是不能够改变的,那么其实它的补码其实也就是(10001)2

而现在需要进行异号的加法运算,如:8 + (-15),这种其实在计算机中其实是采用补码来实现的,那么它转化为二进制来运算就是(01000)2 + (10001)2 = (11001)2,而这算出来其实也结果的补码,对其重新取模运算(不管符号位),也就是-7,那么加上符号位了之后就是(10111)2

还有就是正数补码取反加一是其负数的补码,负数补码取反加一是它的绝对值。对于取反运算其实是不会改变符号位的

posted @ 2022-09-06 17:42  hellozmc  阅读(52)  评论(0编辑  收藏  举报