按位取反~100=-101

Posted yansum

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按位取反~100=-101相关的知识,希望对你有一定的参考价值。

首先看等号左边
(100) 的二进制表示为: 0110 0100
按位取反的意思就是每一位取反,0变1,1变0
所以:
~100 的二进制表示为:1001 1011
所以等号左边=1001 1011

再看右边
-101. 一旦看到出现负数,那么这个数一定是按有符号数的规则来表示的。一个二进制数 按位取反并加一以后就可以得到它自己的负数的补码,也就是说:
~x+1=-x
所以,我们把101按位取反加一
先取反:
~101=10011010
再加一:
~101+1=10011011=-101
所以等号右边=10011011=左边,所以等号成立。

P.S:补充一句,计算机内存里的逻辑存储位是非常复杂的,我这里即使讲得再清楚也无法保证你完全明白。
一般来说,汇编语言的书的开头部分会详细讲解这部分知识以服务于汇编语言,请参阅之。

以上是关于按位取反~100=-101的主要内容,如果未能解决你的问题,请参考以下文章

《算法零基础100讲》(第50讲) 位运算 (按位取反)

《算法零基础100例》(第51例) 按位取反 - 2

《算法零基础100例》(第50例) 按位取反 - 1

复习一个小知识点(反码与按位取反)

单片机逻辑取反和按位取反差异

C#'~'按位取反运算符的使用