关于Java的运算结果的疑问?为什么这个程序的进行位反运算的结果为:-12?
4个回答
展开全部
你是想问11按位取反吧?
11的二进制:00000000 00000000 00000000 00001011 具体32位还是64位无所谓。反正中间那一串都一样。
取反~11:11111111 11111111 11111111 11110100
由于最高为符号位,是1,则表示该数是个负数
负数是以补码形式存储的,所以我们需求依据该补码求原码:符号位不变,其他位取反加1,得到
10000000 00000000 00000000 00001100
高位1为符号位,即结果是-(1*2^3 + 1*2^2) = -12
11的二进制:00000000 00000000 00000000 00001011 具体32位还是64位无所谓。反正中间那一串都一样。
取反~11:11111111 11111111 11111111 11110100
由于最高为符号位,是1,则表示该数是个负数
负数是以补码形式存储的,所以我们需求依据该补码求原码:符号位不变,其他位取反加1,得到
10000000 00000000 00000000 00001100
高位1为符号位,即结果是-(1*2^3 + 1*2^2) = -12
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
无图,无真相
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个就是传说中没有谜面的谜语?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询