C语言例3-32:使用位移位运算符的例子

时间:2024-03-23 14:38:12

unsigned short a = 0101 ;
         short b = -6 ;
  • a 为无符号八进制整数,对应的二进制数为0000 0000 0100 0001
  • b 为有符号十进制整数,对应的二进制数为1111 1111 1111 1010
!!! 计算机系统中整型数一律采用补码表示(存储)。

+6的原码 0000 0110

-6的原码 1000 1110

-6的补码 1111 1010

1. 表达式 a << 3

运算结果01010

0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0
2. 表达式 a >> 2

运算结果是020

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
3. 表达式 b << 3

运算结果是  -48

1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0