C语言中负数的补码怎么求
比如-9,怎么求的,现在我知道正数补码最高位0,负数最高位为1,先求原码的反码,再把反码加1,能把-9的补码过程给我演算一遍吗?...
比如-9,怎么求的,现在我知道正数补码最高位0,负数最高位为1,先求原码的反码,再把反码加1,能把-9的补码过程给我演算一遍吗?
展开
6个回答
展开全部
对于有符号数(分正负的),的最高位是符号位
65的二进制是
0
1000001
补码运算为按位取反
再加1
按位取反:1
0111110
加1:
1
0111111
直接转换为十进制的话,你把它当成无符号数把1也算了,所以不是-65
从
10111111到-65:
计算机根据符号位为1判断是负数
按位取反:01000000
加1:
01000001
这就是65,然后是负数,就是-65
65的二进制是
0
1000001
补码运算为按位取反
再加1
按位取反:1
0111110
加1:
1
0111111
直接转换为十进制的话,你把它当成无符号数把1也算了,所以不是-65
从
10111111到-65:
计算机根据符号位为1判断是负数
按位取反:01000000
加1:
01000001
这就是65,然后是负数,就是-65
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
7的二进制0000
0000
0000
0111,~是按位反,
结果是 1111
1111
1111
1000
注意最高位是1,说明这是个负数,负数在计算机中是补码,补码是十进制多少呢,
把补码负号不变,其它取反,最后加1,这个就是原码.
即1000
0000
0000
0111+1
=1000
0000
0000
1000
是-8
公式~n
结果是
-(n+1)
0000
0000
0111,~是按位反,
结果是 1111
1111
1111
1000
注意最高位是1,说明这是个负数,负数在计算机中是补码,补码是十进制多少呢,
把补码负号不变,其它取反,最后加1,这个就是原码.
即1000
0000
0000
0111+1
=1000
0000
0000
1000
是-8
公式~n
结果是
-(n+1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-16
展开全部
什么意思没明白诶直接用 ~运算 就能求出1的补数 +1就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-16
展开全部
八位二进制 9是00001001 逐位取反 11110110 加一 11110111 加符号位 111110111
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询