题目
17. (4.5分) 若a=9,~a的结果是____。
17. (4.5分) 若a=9,~a的结果是____。
题目解答
答案
将 $a = 9$ 转换为二进制为 $00000000000000000000000000001001_2$。按位取反后得到 $11111111111111111111111111110110_2$,对应补码表示的负数。计算其相反数的补码:取反得 $00000000000000000000000000001001_2$,加 $1$ 得 $00000000000000000000000000001010_2$,即 $10$。因此,结果为 $-10$。
或使用公式 `~a = -a - 1`,得 $~9 = -9 - 1 = -10$。
答案:$\boxed{-10}$
解析
本题考查按位取反运算符(~)的运算规则。解题思路是先将十进制数转换为二进制数,再对二进制数进行按位取反操作,最后将取反后的二进制数转换回十进制数。也可以直接使用按位取反的公式进行计算。
- 将十进制数 $a = 9$ 转换为二进制数:
- 采用除 $2$ 取余的方法,$9\div2 = 4\cdots\cdots1$,$4\div2 = 2\cdots\cdots0$,$2\div2 = 1\cdots\cdots0$,$1\div2 = 0\cdots\cdots1$。
- 从下往上取余数,得到 $9$ 的二进制表示为 $00000000000000000000000000001001_2$(在计算机中,整数通常用 32 位或 64 位表示,这里以 32 位为例)。
- 对二进制数进行按位取反操作:
- 按位取反就是将二进制数中的每一位 $0$ 变为 $1$,每一位 $1$ 变为 $0$。
- 所以 $00000000000000000000000000001001_2$ 按位取反后得到 $11111111111111111111111111110110_2$。
- 将取反后的二进制数转换回十进制数:
- 由于最高位是 $1$,所以这个二进制数表示的是一个负数,它是以补码形式存储的。
- 要求其原码,先对补码减 $1$ 得到反码:$11111111111111111111111111110110_2 - 1=11111111111111111111111111110101_2$。
- 再对反码取反得到原码:$00000000000000000000000000001010_2$,其十进制值为 $10$。
- 因为原码最高位是 $1$ 表示负数,所以结果为 $-10$。
- 使用公式计算:
- 按位取反的公式为 $\sim a=-a - 1$。
- 当 $a = 9$ 时,$\sim9=-9 - 1=-10$。