题目
9.单选题 假设x数据类型是int,x=5,则xA. 5B. 10C. 20D. 40
9.单选题 假设x数据类型是int,x=5,则x<<3是多少?
A. 5
B. 10
C. 20
D. 40
题目解答
答案
D. 40
解析
本题考查的是位运算中左移运算符的知识。解题思路是先明确左移运算符的运算规则,再将给定的数值按照规则进行计算。
左移运算符 << 的运算规则是:将一个数的二进制位向左移动指定的位数,右边空出的位用 0 填充,每左移一位相当于该数乘以 2。
下面我们来具体计算 x << 3 的值,已知 x = 5:
- 首先将
x的值 5 转换为二进制形式。根据除 2 取余的方法,$5\div2 = 2\cdots\cdots1$,$2\div2 = 1\cdots\cdots0$,$1\div2 = 0\cdots\cdots1$,从下往上取余数可得 5 的二进制表示为 $101_2$。 - 然后进行左移 3 位的操作,将二进制数 $101_2$ 向左移动 3 位,右边空出的 3 位用 0 填充,得到 $101000_2$。
- 最后将二进制数 $101000_2$ 转换为十进制数。根据二进制转十进制的方法,从右往左依次用二进制位上的数字乘以 $2$ 的相应位数次幂(幂次从 0 开始),再将结果相加,可得:
$\begin{align*}&1\times2^5 + 0\times2^4 + 1\times2^3 + 0\times2^2 + 0\times2^1 + 0\times2^0\\=&1\times32 + 0\times16 + 1\times8 + 0\times4 + 0\times2 + 0\times1\\=&32 + 0 + 8 + 0 + 0 + 0\\=&40\end{align*}$