今天做coursera测试题的时候,一开始听课不是很清楚,做题的时候还错了一次,第二次总算答对了,好了,先把结果贴出来:
这边打印一个右移2位后的负数,负数在计算机里面是用补码的形式表示,+12由于是整型数据,所以表示为00000000 00000000 00000000 00001100(原码)
-12先要对+12的原码取反:11111111 11111111 11111111 11110011(反码)再对反码+1(0001)
11111111 11111111 11111111 11110100 同时二进制位高位是符号位,所以0100变成1100
最终得到-12的二进制数11111111 11111111 11111111 11111100
用16位进制打印出来就是fffffffd
时间: 2024-10-19 09:19:44