i = -1
j = -1因为int为4个字节,i和j初始为 00000000 00000000 00000000 00000001
左移31位后(即i <<= 31),变为 10000000 00000000 00000000 00000000
此时最高位符号位为1
再右移31位(i >>= 31),并且左侧扩充符号位,变为:
11111111 11111111 11111111 11111111
这个值就是-1,i再右移1位也是一样
j = -1因为int为4个字节,i和j初始为 00000000 00000000 00000000 00000001
左移31位后(即i <<= 31),变为 10000000 00000000 00000000 00000000
此时最高位符号位为1
再右移31位(i >>= 31),并且左侧扩充符号位,变为:
11111111 11111111 11111111 11111111
这个值就是-1,i再右移1位也是一样
00000000 00000000 00000000 00000001按位求反:
11111111 11111111 11111111 11111110再加1:
11111111 11111111 11111111 11111111