发布网友 发布时间:2022-05-05 07:03
共1个回答
热心网友 时间:2023-10-14 09:30
答案D(-1)。short int a,a占两字节,a是有符号数,两个字节是16位,最高一位是符号位,最高位是0,表示该数是正数,为1则为负数。整数在计算机中都是以补码形式表示的,正数的补码是它的原码,负数的补码是它的对应正数的原码各位取反再加1得到的。拿这道题来说,16个1,最高位是1,首先肯定是负数,这一点要搞清楚。抛开最高位不管,因为它是符号位。对其于15个1取反,得到15个0,再加1,得到14个0和1个1,值就是1,所以此补码的值是-1。其实也可以按负数的补码得到的过程逆推回去来算,111111111111111111减去1是1111111111111110再取反得到0000000000000001。总之你把有关补码的知识多了解一点就会明白了。追问可以帮忙看一下这个题吗
热心网友 时间:2023-10-14 09:30
答案D(-1)。short int a,a占两字节,a是有符号数,两个字节是16位,最高一位是符号位,最高位是0,表示该数是正数,为1则为负数。整数在计算机中都是以补码形式表示的,正数的补码是它的原码,负数的补码是它的对应正数的原码各位取反再加1得到的。拿这道题来说,16个1,最高位是1,首先肯定是负数,这一点要搞清楚。抛开最高位不管,因为它是符号位。对其于15个1取反,得到15个0,再加1,得到14个0和1个1,值就是1,所以此补码的值是-1。其实也可以按负数的补码得到的过程逆推回去来算,111111111111111111减去1是1111111111111110再取反得到0000000000000001。总之你把有关补码的知识多了解一点就会明白了。追问可以帮忙看一下这个题吗