一. -1 转换成二进制数
32位 11111111 11111111 11111111 11111111
16位 11111111 11111111
8位 11111111
4位 1111
第一步:绝对值化为你需要多少位表示的二进制
第二步:各位取反,0变1,1变0
第三步:最后面加1
二. 负数左移右移
操作数为正数:
① 负数的右移:需要保持数为负数,所以操作是对负数的二进制位左边补1。如果一直右移,最终会变成-1,即(-1)>>1是-1。
② 负数的左移:和整数左移一样,在负数的二进制位右边补0,一个数在左移的过程中会有正有负的情况,所以切记负数左移不 会特殊处理符号位。如果一直左移,最终会变成0。
操作数为负数:
操作数为负数,取其补码。 4<<-2 <---> 4<<254