java的按位取反~运算符号是怎么计算的

leco255832022-10-04 11:39:541条回答

java的按位取反~运算符号是怎么计算的
int整数~12计算后是-13.这个是myeclipse计算结果.看了下安位取反的原理就是将整数转为2进制,然后按每个位置如果是"1"就取"0",如果是"0"就取"1".那么按我的理解,首先先把12转换为二进制,也就是1100.然后安位取反几0011.那么我计算出来的结果是3.我知道我理解错了,可是不知道为什么.还有二进制怎么表达负数.有人说"11111111 11111111 11111111 11111111"等于-1.可是这个数我是不是也可以理解为普通二进***转为十进***的8589934591.到底要怎么理解安位取反呢,我一直不理解.象"按位与"和"按位或"都相对好理解.就卡这个了,

已提交,审核后显示!提交回复

共1条回复
谁的小狐狸 共回答了26个问题 | 采纳率96.2%
首先,你要知道java中的int是32位的
其次,正数以原码的形式存储,负数以补码的形式存储
12的二进制是0000 0000 0000 0000 0000 0000 0000 1100
取反后得1111 1111 1111 1111 1111 1111 1111 0011
java中都是有符号数,首位是1,所以是负数,负数也就是补码,也就是说
1111 1111 1111 1111 1111 1111 1111 0011是补码
补码,反码加1后得源码
转换成源码得0000 0000 0000 0000 0000 0000 0000 1101
这个数是13,加上符号就是-13
1年前

相关推荐

关于单片机汇编求补的疑问?假设A中存有一个负数;因此求补码如下 CPL A (按位取反) INC A (自加1)。按补码
关于单片机汇编求补的疑问?
假设A中存有一个负数;
因此求补码如下 CPL A (按位取反)
INC A (自加1)。
按补码的定义;补码=反码+1
按上述指令 则 补码=逐位取反+1
可是 “取反码" 和 “逐位取反”也不是一回事啊(符号位变化) 请高手解释
我是箫客1年前1
fennce 共回答了17个问题 | 采纳率94.1%
首先要注意,只有负数需要计算补码,正数的原码反码补码都是一样的。
其次,这里你有个误解,负数的补码是其绝对值取反后,再将其最高位置1,然后加一即可。(注意,因为负数的绝对值的最高位肯定是0,取反后本来就是1,因此第二步最高位置1其实是不必要的,这里指出来,只是为了系统的说清楚补码的运算过程)
例如,-7的单字节补码计算为:
-7的二进制是10000111
7的二进制是00000111
按位取反:11111000
+1:11111001
这个就是-7的补码了。
也就是说,你这个程序前面还少了一部分,
即判断该数是否是负数,即最高位是否是1。
然后如果是负数,要首先将最高位置0
然后就可以用你这两句来计算了。
对了,补充一点,对于一定字节数的整数来说,其最大负数是没有原码和反码的,补码直接是最高位1,其他全0。
例如:对于单字节来说,-128的补码是10000000
模256取反加1 算法是什么
sdjdmsh1年前1
niu1019 共回答了13个问题 | 采纳率92.3%
256(十进制) = 100000000(二进制)
100000000取反为011111111再加1为100000000
还是256
8.设二进制数A是0A101111,若想通过异或运算 A^B使 A的高4位取反,低4位不变,则二进制数B应______.
mhsz6151年前1
55383991 共回答了24个问题 | 采纳率87.5%
11110000 与一异或,原值取反,1^1=0 0^1=1 与〇异或,原值不变,1^0=1 0^0=0
你的回答中说,补码变原码是将补码减一再取反,似乎不是这样.补码与原码互相转换的原则均是取反加
chaintech1年前1
甜甜的甜甜的 共回答了18个问题 | 采纳率88.9%
减一再取反,取反加一,是一回事.
以8位机为例,取反是2^8-1-x.取反加一2^8-1-x+1=2^8-x.减一再取反2^8-1-(x-1)=2^8-x.
题目就是这个(将8位二进制数的第一位置0,第2位取反,第3位置1) 看不懂啊
congjin11年前1
xixi1 共回答了16个问题 | 采纳率93.8%
MOV AL,xx(8位的二进制数)
AND AL,0FEH(11111110)
XOR AL,02H(00000010)
OR AL,04H(00000100)
取反加1是怎么操作的,重要的是那个加1,怎么个加法.还有三位一结合怎么个结合法,
取反加1是怎么操作的,重要的是那个加1,怎么个加法.还有三位一结合怎么个结合法,
如(-12)10=( )8=( )16
第一步:将-12看成12,转换成二进制
   0000 0000 0000 1100
第二步:取反加一,为-12               
   1111 1111 1111 0100
第三步:转换成八进制是三位一结合:(177764)8
转换成十六进制是四位一结合:(fff4)16
猫啊猫啊1年前1
雪龙999 共回答了16个问题 | 采纳率100%
第二步a:取反
1111 1111 1111 0011
第二步b:加1
1111 1111 1111 0100
转8进制,将 1111 1111 1111 0100 按每3位重新分段成 1 111 111 111 110 100,实际上并没有变
关于减法补码的一些问题?这是补码公式:为什么2的次方数是4呢?,求负数的结果是【x1】补=1.0010的取反在加1吗,然
关于减法补码的一些问题?
这是补码公式:

为什么2的次方数是4呢?,求负数的结果是【x1】补=1.0010的取反在加1吗,然后为什么又加0.0001呢?
我就是15分了
api0071年前1
洞挑荫茎 共回答了29个问题 | 采纳率86.2%
这个补码公式完全不用管他,只要知道负数的补码是按位取反,尾数加1,正数的补码是其本身就行了
那么这题x1为负,x2为正
[x1]补=1.0010,-x1为正=0.1110,所以[-x1]补=0.1110
[x2]补=[x2]=0.1101,-x2为负=-0.1101,所以[-x2]补=1.0011
再看这个公式,其实2的n次方就是控制按位取反之后尾数加1的,总共有n位小数,所以就2的-n次方的啊
线性代数二阶行列式的求法?具体点的,有的不是主对角互换,斜对角取反啊?怎么解啊?
线性代数二阶行列式的求法?具体点的,有的不是主对角互换,斜对角取反啊?怎么解啊?
是二阶行列式的伴随矩阵
肖龙20001年前1
wanli9badly 共回答了27个问题 | 采纳率81.5%
你好!我不太明白你 的问题!
1:如果求二阶行列式,则其值是一个数!计算方法为主对角上元素相乘减去副对角线上元素相乘的差.
2:你说的好像是二阶矩阵求逆矩阵吧!如果是求逆矩阵,则用初等行变换时最常规的方法了.
十进制负数转换成二进制数正数转负数是:对应正数的二进制按位取反,加1;那负数转正数不都应该是:先减1,在取反;为什么先取
十进制负数转换成二进制数
正数转负数是:对应正数的二进制按位取反,加1;
那负数转正数不都应该是:先减1,在取反;
为什么先取反,在加1也行
zhudao921年前1
colin_wei 共回答了29个问题 | 采纳率93.1%
这个应该是对补码进行操作吧?假如5个bit来表示一个数
可以这么证明:负数全部取反与原补码的和为11111,如果把00001与11111相加,就得到了00000,这说明这个操作最后求出来的数是正确的.
再考虑先减1再取反是一个逆操作也是正确的
其实就和-(+a)和+(-a)一个道理
51单片机逻辑运算3.欲将P1口的高4位保留不变,低4位取反,可用指令( )。 A. ANL P1,#0F0H B. O
51单片机逻辑运算
3.欲将P1口的高4位保留不变,低4位取反,可用指令( )。 A. ANL P1,#0F0H B. ORL P1,#0FH C. XRL P1,#0FH D.
知轩1年前1
112432403 共回答了22个问题 | 采纳率90.9%
都不行,要几行来配合才行
MOV A,P1 ;将P1的值传入A
MOV R3,A
CPL A ;将A按位取反
ANL A,#0FH
MOV R4,A
MOV A,R3
ANL A,#0F0H
ORL A,R4
MOV P1,A
7的移码我算的是补码0000 0111符号位取反为1000 0111吗?可是书上的是1000 0110呢?
cyss1年前1
海龙王弟弟 共回答了14个问题 | 采纳率100%
7的原码是00000111,反码是01111000,补码是01111001,移码是11111001.我是这样做的不知道对不对
为什么~53等于-54有书本说只有按位取反就可以得到答案,例42=00101010,按位取反后为11010101就行.但
为什么~53等于-54
有书本说只有按位取反就可以得到答案,例42=00101010,按位取反后为11010101就行.但是~53==-54如何得到负数的呢?
夜莺啼声起床1年前1
maydaycat 共回答了19个问题 | 采纳率73.7%
所以53 = 00110101(这是个补码,正数补码为其本身),取反后~53 = 11001010,最高位的1为符号位,所以11001010其实是一个负数的补码(在计算机中存储的都是补码),即1,1001010.由负数补码求原码,即对负数补码再求补,需将原负数补码除了符号位的其他位取反加一,得1,1001010 (取反)-> 1,0110101(再加1) -> 1,0110110 = -54
其实严格来说~53等于的是-54的补码,或者说是在计算机中存储的-54
算法:关于二进制取反,符号位取不取反的问题
算法:关于二进制取反,符号位取不取反的问题
我看到有时候讲解二进制的时候有这样一个规律:
补码=反码+1
但是算反码的时候我看有的时候是所有位取反,有的是符号位保持不变,其余位取反
这两个哪个对呢?或者说适用情况不同?
----------------------------------------------------
那计算二进制减法的时候,例如5-3,我们会将其变成加法运算5+(-3)
这个取反过程好像符号位也取反了,这是为什么呢?麻烦前辈们再帮小弟看下,我就是卡在这里了=。=
郭大猫1年前3
crdeng78 共回答了19个问题 | 采纳率84.2%
(1) 原码:在数值前直接加一符号位的表示法。
(2)反码:
正数:正数的反码与原码相同。
负数:负数的反码,符号位为“1”,数值部分按位取反。
(3)补码:
正数:正数的补码和原码相同。
负数:负数的补码则是符号位为“1”。数值部分按位取反后再在最低位加1。也就是“反码+1”。
----------------------------------------------------
5-3计算过程,以字长8bit为例
5 - 3 =
(0000 0101)补 + (1000 0011)补 =
0000 0101 + 1111 1101 (这里就是反码为1111 1100,+1得到) =
1 0000 0010
最后,这里字长为8bi,所以8位以后的都舍弃(从右边开始数)
PS:如果舍弃掉的是有效数字,那么这就是传说中的溢出
所以,结果为(0000 0010)2=(2)10
所以5-3=2
集合中的一些概念问题1.不等式集合取空集的方法是不是 把不等式里的逻辑运算符取反?但取反后的空集还是原集合的子集?2.①
集合中的一些概念问题
1.不等式集合取空集的方法是不是 把不等式里的逻辑运算符取反?但取反后的空集还是原集合的子集?
2.
①"交集∩" A∩B
②"并集∪" A∪B
③"或" A或B
④"且" A且B
以及中文里的⑤ "并且" 这个是拆出来 并 和 且 两个来理解还是……
它们在数学题目中的概念我弄混了,在数轴中表示也很乱.
帮我解释一下它们之间有什么关系.
是①④一样 、②③也一样吗?我好像记得是 或取并(霍去病)?
风语者19421年前1
cl8888888888 共回答了19个问题 | 采纳率73.7%
1,
取反的时候,符号=变成不等于,大于变成小于等于.还要主意隐含的一些条件,如有1/(x-1)的,要注意x不等于1
空集是任何集合的子集
2,
⑤ "并且"=④"且"
你的理解是对的,
①④一样 、②③也一样
只是③④是不等式中的的说法,①②是集合中的说法
设二进制数A是0A101111,若想通过异或运算 A^B使 A的高4位取反,低4位不变,则二进制数B应_____
设二进制数A是0A101111,若想通过异或运算 A^B使 A的高4位取反,低4位不变,则二进制数B应_____
问题:
1,既然是二进制数,为什么还会有字母A ?
2,此题何解?
cool霉l1年前1
xinqinlq 共回答了21个问题 | 采纳率90.5%
1.有字母A,就是题目有错.
2.B = 1111 0000
说明:用1去异或,将使其取反;用0去异或,将使其不变.
证明两次傅里叶正变换等于原函数取反
澳大利亚1年前0
共回答了个问题 | 采纳率
求负数的补码时按位取反再加一是什么意思?
happy8wang1年前3
雪天使 共回答了27个问题 | 采纳率85.2%
学习补码,重要的是学到它的本质和定义.
求反加一,仅仅是一个简单的算法,并不值得过多的重视.
求反加一,的的确确,
建议看看:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
补码里面的定义:“负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1.”这个整个数加1是指什么?
补码里面的定义:“负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1.”这个整个数加1是指什么?
是指不如11111110这个二进制数个后面加一(1111111)还是?
shanxihe1年前1
lyk942 共回答了13个问题 | 采纳率92.3%
就是 反码+1
反码:符号位(最高位)不变,其余按位取反
补码=反码+1
负数的补码为何符号位取反后为1?
负数的补码为何符号位取反后为1?
例:X=-1010
根据补码的编码方法,负数的补码等于二进制位按位取反后在最低位加1,符号位取反后为1.
即 数值部分1010取反后为0101,然后最低位加1,得0110,符号位取反后为1,即[X]补=10110
我始终看不懂的就是,符号位为什么取反后为1,一开始符号位不是个负号吗?负号不是该用1表示吗?那取反后应该为0啊?为什么是1?
红色烂香蕉1年前1
bill_yang 共回答了19个问题 | 采纳率94.7%
负号是用1表示,它是不会变的,不可能取反了就变成了正的了.
“两个条件只需满足一个的情况下,结论即可成立”相对应的逻辑运算是_____运算(加法,逻辑加,逻辑乘,取反) “两个条件
“两个条件只需满足一个的情况下,结论即可成立”相对应的逻辑运算是_____运算(加法,逻辑加,逻辑乘,取反) “两个条件必须同时满足的情况下,结论即可成立”相对应的逻辑运算是_____运算(加法,逻辑加,逻辑乘,取反)
笑笑猫舍1年前1
gqeryt5y 共回答了13个问题 | 采纳率84.6%
1、逻辑加法(“或”)
2、逻辑乘法(“与”)
若a的二进制为00101101,通过a^b运算使a的高4位取反,低4位不变,则b的二进制值为多少
chlu011年前1
永远面对大海 共回答了29个问题 | 采纳率86.2%
0∧0=0,0∧1=1,1∧0=1, 1∧1=0
即与0异或值不变,与1异或则取反
所以答案为 1111 0000
什么叫负数的反码是对其原码逐位取反?
fjxsailor1年前1
hzz_0412 共回答了19个问题 | 采纳率89.5%
例如:有一个负数(-10)10
则原码为(11010)2其中第一位"1"表示负号
故反码为(10101)2其中反码对符号位不变,对其余各位取反(即1变0,0变1)
有不懂欢迎追问
负数的原码、反码、补码负数的补码,-1,取反,得到原码a1负数的补码,取反,+1,得到原码a2a1与a2为什么相等感谢“
负数的原码、反码、补码
负数的补码,-1,取反,得到原码a1
负数的补码,取反,+1,得到原码a2
a1与a2为什么相等
感谢“做而论道”,你写的很好.其中,很好的一点是你引入了模的概念,而很多地方却以0来论述此问题.但是还有很多地方,你没理解.
其实,我也是到今天才把这概念弄懂.最高位是符号位是没有错的,但是不能理解成正号.包括很多的老师,其实都没有理解清楚,所以导致了这个混乱的局面.此处并不是***,而是没理解.
你原文的论述很好,很容易给人以启发.但是论述太广,其实,原码、反码、补码就是针对二进制所定制的概念,而且如果每次算负数的补码都用模减去其绝对值的原码,那将很不方便.所以
①负数的补码,-1,取反,得到绝对值原码
②负数的补码,取反,+1,得到绝对值原码
这样还是比较方便的.(由于此处字数限制,我在我的百度空间里做了论证)
有空的,可以去看看
http://hi.baidu.com/知秋小枫/blog/item/8bfaf0e1bdca97d50b46e043.html
林仪仞1年前1
孤独是种情调 共回答了13个问题 | 采纳率100%
原码、反码、补码,在数学领域,是有严格定义的.
在这些定义式中,根本就没有“求反加一”的说法.
取反加一、减一取反,这些方法,只不过是经验公式而已,并没有数学的证明.
它们仅仅能应用在二进制领域,上升不到数学的理论高度,它们也就是能蒙混初学者而已.
参考:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
负数,原码变补码是取反加一,但补码变原码也是取反加一?
孙熙宾1年前1
忘记爱 共回答了15个问题 | 采纳率80%
是啊.我知道你的疑惑,按原码变补码的规则,补码变原码应该是“减1取反”,可是对于二进制,“减1取反”和“取反加1”的效果是一样的……
矩阵主对换,负取反适用于几阶
撒哈拉之心zw1年前1
jin6563727 共回答了18个问题 | 采纳率83.3%
请看清伴随矩阵里的元素下标 Aji 即:
伴随矩阵 i行j列 的元素对应的是 A 的 j行i列 的代数余子式,从而对二阶矩阵而言,辅对角线元素只变号、不对换;
你把矩阵乘一下就知道老师讲的没错了
逻辑代数中z=a+b+c取反怎么算
无晴花絮1年前1
坚决kk 共回答了22个问题 | 采纳率95.5%
a || b || c = !((!a)&&(!b)&&(!c))
||表示或
&&表示与
!表示非
!z = (!a)&&(!b)&&(!c)
单作用叶片泵和双叶片泵的叶片倾角方向为何取反
昨夜梦回盛唐1年前1
tycho 共回答了13个问题 | 采纳率69.2%
尽量抵消 轴向力
-8的补码是多少?书上-8补码是1000但我就看不明白了.按定义来说当真值为负,补码便是将数值位按位取反,最后加1,符号
-8的补码是多少?
书上-8补码是1000但我就看不明白了.按定义来说当真值为负,补码便是将数值位按位取反,最后加1,符号位把“-”变“1”.我把-8化成真值-1000B,最后算得补码为:11000B这是咋会是呢?
yuanhang呀1年前1
lf0718 共回答了20个问题 | 采纳率95%
用8位2进制来表示一个数的话,-8的源码为1000 1000,反码为1111 0111,补码为1111 1000 根据扩展是符号位向高位扩展的原理 前面的1111是表示负号位的扩展,所以可以直接等于1000吧 一般都是8位扩展到16位 你这是书上简写了吧.最好做题时还是写1111 1000
补码是对它的原码(除符号位外)各位取反,并在未位加1?
补码是对它的原码(除符号位外)各位取反,并在未位加1?
不要抄书!
为什么补码是对它的原码各位取反,并在末位加1?
彭灵燕1年前1
arllan 共回答了17个问题 | 采纳率88.2%
这个和微机原理的记数系统有关
减一个数字等于加上这个数字的补码,因此,补码要同时满足运算的符号和数位的变换
在2进制中,这种数位变换经过计算后刚好为原来数码的反码加1
所以计算是我们就用原码的反码加1并称为补码进行加法运算
老师呀,二阶矩阵的求法怎么是: 主对角元互换,斜对角取反
老师呀,二阶矩阵的求法怎么是: 主对角元互换,斜对角取反
应该是: 主对角元互换,斜对角取反
1 2
3 4
的伴随矩阵是
4 -2
-3 1

1 0
2 1
的伴随矩阵是
1 0
-2 1
NASH1323331年前1
iraina0829 共回答了22个问题 | 采纳率86.4%
对. 2阶方阵的伴随矩阵是这样
求负数的补码是先绝对值,再换为二进制,取反再加一、那么取反是怎么算的呢、
选择码1年前1
bingbing1022 共回答了15个问题 | 采纳率93.3%
如:-5 绝对值为 5 八位的二进制是 0000 0101 取反就是0变1,1变0 结果是 1111 1010 再+1 结果是 1111 1011 这就是-5的补码了 追问:那么为什么-10 补码 取反后为1111111111110101加1成了11111111111110110?回答:10 二进制 0000 1010 取反1111 0101 +1 注意 二进制加法 1+1=10 遇到2写0进1 追问:那么是怎么算 二进制 的啊怎么把十进制转化成二进制 回答:除2取余倒排 例:10 10/2商5 余 0 5/2 商2 余1 2/2 商1 余 0 1/2 商 0 余 1 把余数倒排10的 二进制 是1010
反比例函数y等于-2/x,当x等于-2时,y等于_;当x小于-2时,y的取反比例函数y等于2/x,当x等于-2时,y等于
反比例函数y等于-2/x,当x等于-2时,y等于_;当x小于-2时,y的取反比例函数y等于2/x,当x等于-2时,y等于_
反比例函数y=-2/x,当x=-2时,y=__?;当x<-2时,y的取值范围是__?;当x>-2时,y的取值范围是__?
红袖凭栏1年前2
眉茵 共回答了14个问题 | 采纳率100%
反比例函数y=-2/x,当x=-2时,y=_1_;当x<-2时,y的取值范围是0<y<1/2__;当x>-2时,y的取值范围是_y>1/2_.观察图像.
求问二进制的补码和反码问题.RT,-1000110的补码.首先负数的补码求解方法是它的原码除符号位外逐位取反再末位加1,
求问二进制的补码和反码问题.
RT,-1000110的补码.
首先负数的补码求解方法是它的原码除符号位外逐位取反再末位加1,也就是说-1000110的符号位应该是那个符号啊!那么这样的话它的反码就应该是10111001,然后再加一,就是10111010
可是为什么书上给的答案是1111010,书上的算法就是吧负号后一位的那个“1”当成了符号位,可是不应该啊,符号位应该是那个负号啊!
西飏1年前1
hhjjah 共回答了23个问题 | 采纳率91.3%
数字:-100 0110.
负数的补码求解方法是它的原码除符号位外逐位取反再末位加1.
原码:1 100 0110;
反码:1 011 1001;
补码:1 011 1010.
--可是为什么书上给的答案是 111 1010 !
书,也有错的时候.
正逻辑和负逻辑电路的问题与门前的圆圈只有低电平有效的意思吗?有没有取反的意思?
正逻辑和负逻辑电路的问题

与门前的圆圈只有低电平有效的意思吗?有没有取反的意思?
pkuzhouyi1年前1
激光制导的子弹 共回答了14个问题 | 采纳率78.6%
这是我最赞成的画法,不要分辨什么正逻辑、负逻辑,一切按照输入、输出的逻辑关系画逻辑图.≥1 表示逻辑“或”运算,输入的小圆圈表示低电平有效,输出没有小圆圈表示高电平有效.
F = A' + B' + C' + D'
= (ABCD)'
真值表是与非门.
小圆圈没有取反的含义.
如: 74LS138 译码器 的 3 个片选,一个高电平有效,两个低电平有效,三者是与的关系:
CS = S1' * S2' * S3