c语言、是已知一个负数的补码然后求原码
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/04 17:55:38
c语言、是已知一个负数的补码然后求原码
该负数补码为a=1111 1111 1111 1101
a=-[2^16-(a的补码)]
2^16是换算成16位2进制来算还是什么!
该负数补码为a=1111 1111 1111 1101
a=-[2^16-(a的补码)]
2^16是换算成16位2进制来算还是什么!
对补码求补就原码
故原码:
-((2^16-1)-a+1)
其中2^16-1是二进制数:1111 1111 1111 1111
减a后就是将a全部按位取反(包括最高位)
+1后还得把最高位换为1(在计算机内部为换为1),咱们表示的时候就是取其负值,故前面加一个‘-’
再问: 是不是2^16就是0000 0000 0000 0001 的1向前面进位16个? 然后【补码的优点就是两个相反数相加得到0,如-1:1111 1111 1111 1111; 1: 0000 0000 0000 0001,这里我没看懂、相反数相加为0?,-1:1111 1111 1111 1111;1: 0000 0000 0000 0001。是什么意思、谢谢你解答下噢!
再答: (-1) : 1111 1111 1111 1111 (+1): + 0000 0000 0000 0001 -------------------------------- 1 0000 0000 0000 0000 (-2) 1111 1111 1111 1110 (+2) + 0000 0000 0000 0010 -------------------------------- 1 0000 0000 0000 0000 可见,补码正负数(绝对值相反)相加,得1 0000 0000 0000 0000,这个数就是2^16, 【但数据就是低16位,低16位就是0;实际上,补码运算是不看进位位的】
再问: 这个1 0000 0000 0000 0000 就是啊、a的原码咯?
再答: a=-[2^16-(a的补码)] 这个是 a=1111 1111 1111 1101 2^16-(a的补码)= 0000 0000 0000 0011 a=-【0000 0000 0000 0011】 由于最高位是符号位,所以 a=-【000 0000 0000 0011】 [a]原=1000 0000 0000 0011
故原码:
-((2^16-1)-a+1)
其中2^16-1是二进制数:1111 1111 1111 1111
减a后就是将a全部按位取反(包括最高位)
+1后还得把最高位换为1(在计算机内部为换为1),咱们表示的时候就是取其负值,故前面加一个‘-’
再问: 是不是2^16就是0000 0000 0000 0001 的1向前面进位16个? 然后【补码的优点就是两个相反数相加得到0,如-1:1111 1111 1111 1111; 1: 0000 0000 0000 0001,这里我没看懂、相反数相加为0?,-1:1111 1111 1111 1111;1: 0000 0000 0000 0001。是什么意思、谢谢你解答下噢!
再答: (-1) : 1111 1111 1111 1111 (+1): + 0000 0000 0000 0001 -------------------------------- 1 0000 0000 0000 0000 (-2) 1111 1111 1111 1110 (+2) + 0000 0000 0000 0010 -------------------------------- 1 0000 0000 0000 0000 可见,补码正负数(绝对值相反)相加,得1 0000 0000 0000 0000,这个数就是2^16, 【但数据就是低16位,低16位就是0;实际上,补码运算是不看进位位的】
再问: 这个1 0000 0000 0000 0000 就是啊、a的原码咯?
再答: a=-[2^16-(a的补码)] 这个是 a=1111 1111 1111 1101 2^16-(a的补码)= 0000 0000 0000 0011 a=-【0000 0000 0000 0011】 由于最高位是符号位,所以 a=-【000 0000 0000 0011】 [a]原=1000 0000 0000 0011
c语言、是已知一个负数的补码然后求原码
C语言中 负数0负数原码为1000000000000000的补码问题
负数的补码F6H(负数)的补码?
C语言中为什么用补码表示负数,而不是直接在正数的前面加1呢
-1的补码怎么算?C语言
补码里面的定义:“负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1.”这个整个数加1是指什么?
负数补码!负数的补码的最高位一定是1吗?
输入一个数,然后判断输出这是一个正数,或者这是一个负数,或者这是0 c语言
怎么求一个负数的原码和补码?
C语言中 负数在内存中为什么要以补码形式存储?
为什么二进制编码负数的绝对值是补码?
正数,负数原码的补码的补码是他本身吗