~-2 结果是1
怎样算出来的
要详细步骤
一楼的意思是:2的补码就是-2 ,对2的补码取反就得1
如果这样算,~1=-2 ,怎么得来
1的补码是1本身(1是正数),再取反就是11111110,换成十进制是1--126
______________________
我又查了相当问题,终于搞清楚了
要理解上面的式子,首先要知道两个概念
1.在计算机中,数值是以补码的形式存放的,运算的时候也是以补码来运算的
2.在输出表示的时候,是用原码来表示,原码的显示是为了直观.
再来算这两个问题
1的补码是本身 0000 0001 ,取反1111 1110(负数),表示时用原码,因为是负数,所以等于补码+1,1000 0001+1=1000 0010 =-2;
-2 原码: 1000 0010 以补码存放: 11111101+1=1111 1110,取反:0000 0001(正数),表示时用原码: 0000 0001=1
,因为正数的原码是本身
c语言,按位取反。
C语言的逻辑运算包括与、或、非 按位取反使用运算符~如0xFF按位取反为~(0xFF)按位取反后的结果为0x00 需要注意的是,C语言中的逻辑运算&和&&是不同的 0xFF&0xA0=0xA0 而0xFF&&0xA0=1 一个运算符是按位操作 其返回值是按位操作的结果 两个运算符是逻辑表达式,其返回值只有0和1 ...
C语言按位取反?
按位取反:1 1010 反码 末位加一:1 1011 补码 符号位为1是负数,即-11 规律:~x=-(x+1);因此,t=~10(1010)==-11;
c语言中~ x是什么意思
在C语言中,~x代表的意思是按位取反的意思。将x按位取反 比如x = 10101010b。那么~x = 01010101b。还要注意,在C语言中,还有逻辑取反符号“!”,“!x”的返回值只有0和1两种。如果x为0,则!x=1。如果x不等于0.则!x的返回值为0。
c语言中有哪些运算符按位取反?
(取反、左移、按位与、按位异或、按位或)优先级由高到低的顺序排列为取反 > 左移 > 按位与 > 按位异或 > 按位或。1、~:意思是按位取反,类似于非(!)的关系,取它的反面。2、<<: 意思是左移,移动二进制的位。3、& : 意思是按位与,类似于与(&&)的关系,一假为假。4、...
c语言里,~表示什么?
在C语言中,~是按位取反运算符,用于对一个数的所有二进制位进行取反操作。例如,~5将返回-6,因为5的二进制表示为101,取反后变为010,即2,再加上符号位变为-6。
C语言中,65的按位取反怎么算,书上的答案是190和-66,求大神解答,详细点...
在C语言中,数值65的按位取反可以通过以下步骤进行计算:1. 将65转换为二进制表示,得到01000001。2. 按位取反,即把每个0变成1,每个1变成0,得到10111110。3. 将二进制数10111110转换回十进制,计算得到190。在计算机科学中,负数通常以补码形式表示。因此,如果想要得到-65的补码表示,需要遵循以下...
c语言中的位运算符中‘按位取反’是怎么运算的,什么是负数的反码,请各...
反码是:符号位为1,其余各位求反,但末位不加1 也就是说,反码末位加上1就是补码 1100110011 原 1011001100 反 除符号位,按位取反 1011001101 补 除符号位,按位取反再加1 正数的原反补是一样的 在计算机中,数据是以补码的形式存储的:在n位的机器数中,最高位为符号位,该位为零表示为正,为...
c语言中的位运算符中‘按位取反’是怎么运算的
使用~按位取反运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行取反计算,取反后所得到的值就是~按位取反的运算结果。例如,假如计算机是32位的,接下来要计算~5的值,计算过程如下:5 的二进制表达式为:0000 0000 0000 0000 0000 0000 0000 0101 执行~运算,即~5后: 1111 ...
C语言中取反符号怎么打出来的
C语言取反操作为位操作一种,其符号为~。位于键盘左上角,esc键下方,有一个上面为~ 下面为`的键,~符号就是用这个键打出来的。方法为 1 按住shift键,左右均可。2 按~键,即之前说的键。3 抬起shift键。~操作为单目操作,即只需要一个操作数。结果为操作数按位取反,原值某位上值为1,...
按位取反~(~1<<1)另外C语言负数按位取反是啥啊
在C语言中,负数是以补码方式存放的,计算方法为,负数绝对值对应数值的二进制值,按位取反后再加一。当负数按位取反时,就是其补码按位取反。比如,-10在存储为char型时,10的二进制值为0000 1010,取反后为1111 0101, 加一得到补码的二进制值为 1111 0110, 所以-10在存为char型时,补码的16...