位补运算符(~tilde)是如何工作的?

位补运算符(~tilde)是如何工作的?

为什么~2等于-3?如何~接线员?



慕码人8056858
浏览 484回答 3
3回答

慕神8447489

请记住,负数存储为二补积极的对口。举个例子,这里是-2在两个补语中的表示:(8位)1111 1110得到它的方法是,获取一个数字的二进制表示,取其补码(反转所有位)并添加一个。两个开始为0000 0010,通过倒置位,我们得到11111101。加一个就可以得到上面的结果。第一个位是符号位,意味着否定。让我们来看看我们如何得到~2=-3:这里又有两个:0000 0010只要翻转所有的数据,我们就可以得到:1111 1101好吧,在二人的补体里-3是什么样子的?从正3:0000 0011开始,将所有位翻转到11111100,并添加一个变成负值(-3),11111101。所以,如果你简单地把比特倒置到2中,你就得到了两个补码的-3表示。补运算符(~)只是翻转位。由机器来解释这些位元。

喵喵时光机

~翻转值中的位。为什么~2是-3与数字按位表示的方式有关。数字表示为二补.所以,2是二进制值。00000010而~2翻转比特,所以现在的值是:11111101它是-3的二进制表示。

慕莱坞森

正如其他人提到的~只需翻转位(将1改为0和0到1)二补你得到了你看到的结果。有一点要补充的是为什么使用2的补码,这样负数上的运算和正数上的运算是一样的。想想-3作为3应该添加以获得零,您将看到这个数字是1101记住,二进制加法就像小学(十进制)加法,只有当你到2而不是10的时候才带一个。 1101 +  0011 // 3     = 10000     =  0000 // lose carry bit because integers have a constant number of bits.因此1101是-3,翻转你得到的部分0010也就是两个。
打开App,查看更多内容
随时随地看视频慕课网APP