🏰 第1题 二进制 101.101 等于十进制 5.005
题目:
二进制数101.101在十进制下是5.005
❌答案:❌ 错误
1、🌟小数转换魔法
(1)先看整数部分:
101₂ = 1×4 + 0×2 + 1×1 = 5(2)再看小数部分:
.101₂ = 1×1/2 + 0×1/4 + 1×1/8 = 0.5 + 0 + 0.125 = 0.625(3)合起来:
101.101₂ = 5.625不是 5.005!
2、❌所以这题是:错误
🏰 第2题 位运算也有优先级规则
题目:
位运算符也像乘除加减一样有优先级,需要注意括号。
✅答案:✅ 正确
1、🌟运算符排队赛跑
(1)表达式里,谁先算谁后算,是有规则的!
例如:
a + b << 1不是随便算的。
(2)就像学校排队:
乘除先走
加减后走
位运算再安排
(3)为了不搞错,最好加括号:
2、✅ 所以这题:正确
🏰 第3题'3'和3值相同,只是字节不同
❌答案:❌ 假
1、🌟双胞胎误会事件
看起来都像3,但其实完全不同!
2、字符'3'
这是字符,存的是 ASCII 编码:
'3' = 513、数字3
这是整数:3
它们值不同,一个是3,一个是51,不只是字节大小不同,对应的数值也不同!
❌所以这题:错误
🏰 第4题 数组越界会编译错误
题目:访问越界元素会引起编译错误。
❌答案:❌ 错误
1、🌟守门员没发现
(1)例如:
int a[3]; a[10] = 5;(2)编译器会说:
“语法没错,放你过去。”
但运行时可能出问题!💥
(3)所以:
编译时不一定报错
运行时才危险
2、❌所以这题:错误
🏰 第5题 所有int左移若干次都会变0
✅答案:✅正确
1、🌟数字传送门
左移<<所有数字向左面移动,后面补充0
例如:
//以8位2进制,举例 00001111 << 8 = 00000000只要左移次数足够多,最后所有位数都会变成0
2、✅ 所以这题:正确
🏰 第6题 数组顺序和内存位置无关
❌答案:❌ 错误
1、🌟火车车厢故事
(1)数组像一列火车:
int a[4];(2)内存里通常是连续排放的:
a[0] a[1] a[2] a[3]谁的下标小,谁通常在前面。
(3)所以逻辑顺序和内存顺序是有关的!
2、❌所以这题:错误
🏰 第7题 定义数组时 [] 中必须写个数
❌答案:❌ 假
1、🌟自动数数机器人
(1)虽然很多时候写:
int a[3];(2)但也可以这样:
int a[] = {1,2,3};(3)编译器会自动数:
“有3个元素!”
(4)这种情况,可以不必写个数。
2、❌所以这题:错误
🏰 第8题 哥德巴赫猜想可以用枚举法证明
❌答案:❌ 假
1、🌟超级数学谜题
(1)哥德巴赫猜想说:
每个大于2的偶数 = 两个素数之和
(2)我们可以枚举很多数字去验证:
4 = 2+2
6 = 3+3
8 = 3+5
(3)但这只能验证很多例子,不能证明“所有无限多个数”!
就像你检查了100只猫会喵喵叫,也不能证明全世界所有猫都一样。
2、❌所以这题:错误
🏰 第9题(0xff == 255)为 true
✅答案:✅ 正确
1、🌟十六进制变身术
0xff意思是十六进制数:
F = 15 FF = 15×16 + 15 = 255所以:
0xff == 255是真的!
2、✅ 所以这题:正确
🏰 第10题(a & 1)==0说明a是偶数
✅答案:✅ 正确
1、🌟奇偶检测仪
数字最后一位(二进制)决定奇偶:
偶数最后一位是0
奇数最后一位是1
2看位运算
a & 1只检查最后一位。
(1)例如6:
6 = 110 110 & 001 = 0所以6是偶数。
(2)例如7:
7 = 111 111 & 001 = 1所以7是奇数。
(3)如果结果是0,就说明是偶数!
3、✅ 所以这题:正确
🏆 知识点总结:
✅ 二进制小数转换
✅ 运算符优先级
✅ 字符与数字区别
✅ 数组越界知识
✅ 左移运算
✅ 十六进制
✅ 位运算判断奇偶