怎么做
- 题面里的虚线方框就是要填的空
- 点候选项,它会填进当前高亮的那个空
- 点已填好的空,可以把选项取回来重选
- 全部填满后「提交」才会亮起
卡住了就点右下角的 👩🏫 问 AI 老师,她会给提示但不直接给答案。
移位:乘除 2 的幂
x << 1:每一位往左挪一格,右边补 0
x
0
0
0
1
0
1
1
0
0
0001 0110 = 22
0010 1100 = 44,正好 ×2
x << n:把 x 的二进制整体左移 n 位,右边补 0。每左移 1 位数值 ×2,所以 x << n 等于 x × 2ⁿ。
x >> n:整体右移 n 位,最右边的 n 位直接丢掉。对非负数(或 unsigned),每右移 1 位就是 ÷2 再去掉小数,x >> n 等于 x / 2ⁿ(整除)。负数右移的结果和编译器有关,不用管它。
最常用的一个:1 << k 就是「只有第 k 位是 1」的数。位从右往左数,最右边是第 0 位。
#include <stdio.h>
int main(void)
{
unsigned int a = 13; /* 二进制 1101 */
printf("%u %u %u\n", a << 2, a >> 1, 1u << 5);
return 0;
}
程序输出的三个数依次是【0】、【1】、【2】。
请登录后作答。
去登录
👩🏫
AI
💬 题目评论
🔒
登录并作答后可看讨论