App Inventor 2 数学积木完全指南:从加减乘除到位运算,一篇搞定所有计算需求
做 App 的时候,你觉得最离不开却又最容易被忽视的积木是什么?答案就是——数学运算积木。无论是计算购物总价、处理传感器数据,还是做游戏里的碰撞检测,数学积木都是幕后英雄。今天我们就把 App Inventor 2 中所有数学积木翻个底朝天,让你以后遇到任何计算需求,都能第一时间找到合适的积木。
一、基础运算:加减乘除不止那么简单
App Inventor 2 的基础运算积木包括加(+)、减(-)、乘(*)、除(/)和幂运算(^)。
其中,加法和乘法积木是可扩展块(Mutator),点击右上角的齿轮图标,可以拖入更多的输入槽,实现三个甚至更多数字同时运算:
加法: 1 + 2 + 3 + 4 = 10 (一个积木搞定,不用嵌套) 乘法: 2 × 3 × 4 = 24 (同理,一个积木搞定)幂运算积木^也非常实用:2 ^ 3 = 8,省去重复写乘法。
💡小技巧:带有数字值的块(如列表长度、文本长度、变量值)都可以直接接入数学运算积木,不需要先转换为数字类型。
二、比较运算:条件判断的核心
六种比较积木返回真(true)或假(false),是if/else条件判断的基础:
| 积木 | 含义 | 示例 |
|---|---|---|
= | 等于 | 5 = 5 → 真 |
≠ | 不等于 | 5 ≠ 3 → 真 |
> | 大于 | 5 > 3 → 真 |
≥ | 大于等于 | 5 ≥ 5 → 真 |
< | 小于 | 3 < 5 → 真 |
≤ | 小于等于 | 5 ≤ 5 → 真 |
三、数字输入:支持四种进制
很多人不知道,App Inventor 2 的数字块除了十进制,还直接支持二进制、八进制和十六进制输入:
- 二进制:
0b10= 十进制 2 - 八进制:
0o14= 十进制 12 - 十六进制:
0xd4= 十进制 212
进制数字块还可以通过下拉菜单切换输入模式,这在处理硬件通信、蓝牙数据时非常好用。
四、取整与舍入:三种方式各有妙用
| 积木 | 说明 | 示例 |
|---|---|---|
| 四舍五入(round) | 小数部分 <0.5 向下,>0.5 向上;正好 0.5 时向偶数取整 | round(2.5)=2, round(3.5)=4 |
| 上取整(ceiling) | 返回 ≥ 该数的最小整数 | ceiling(3.01)=4 |
| 下取整(floor) | 返回 ≤ 该数的最大整数 | floor(3.88)=3 |
⚠️ 注意 round 的"向偶数取整"规则(Banker’s Rounding),这是国际标准 IEEE 754 的做法,不是 Bug!
五、随机数:游戏和模拟的基石
三个随机数积木:
- 随机整数:返回指定范围内的随机整数(含首尾),参数顺序不限——填
1到100和100到1效果一样 - 随机小数:返回 0~1 之间的随机小数
- 设定随机数种子:用相同种子可以生成相同的随机序列,非常适合测试和科学计算
// 骰子游戏:生成 1-6 的随机数 调用 随机整数(1, 6) // 概率测试:用固定种子确保多次运行结果一致 调用 设定随机数种子(42)六、高级函数:科学计算也能搞定
通过下拉菜单可以切换的函数积木:
- min / max:取一组数的最小值/最大值(可扩展块)
- 平方根、绝对值、相反数
- 自然对数(log)、e^x
- 三角函数:sin、cos、tan(以度为单位,不是弧度!)
- 反三角函数:asin、acos、atan、atan2
- 弧度⇄度数转换
七、求模、余数和商:别再傻傻分不清
这三个概念最容易混淆,记住这个区别:
- 求模(modulo):结果与除数 b 同号。
mod(-11, 5) = 4 - 余数(remainder):结果与被除数 a 同号。
remainder(-11, 5) = -1 - 商(quotient):整除结果,丢弃小数部分
| 表达式 | 求模 | 余数 |
|---|---|---|
| (11, 5) | 1 | 1 |
| (-11, 5) | 4 | -1 |
| (11, -5) | -4 | 1 |
| (-11, -5) | -1 | -1 |
做循环索引、数据分页时,求模是最常用的。处理硬件协议时,余数更符合底层逻辑。
八、位运算实战:二进制位操作
这是进阶玩家最爱的部分。App Inventor 2 提供三种按位运算:
- 按位与(&):两位都为 1,结果才为 1
- 按位或(|):任一位为 1,结果就为 1
- 按位异或(^):两位不同时结果为 1
实战案例:指定修改二进制某一位
将第 N 位设为 1(按位或操作):
| 操作 | 原值 | 运算 | 结果(二进制) | 结果(十进制) |
|---|---|---|---|---|
| 第1位置1 | 1010 | | 0001 | 1011 | 11 |
| 第2位置1 | 1010 | | 0010 | 1010 | 10 |
| 第3位置1 | 1010 | | 0100 | 1110 | 14 |
| 第4位置1 | 1010 | | 1000 | 1010 | 10 |
将第 N 位设为 0(按位与操作):
| 操作 | 原值 | 运算 | 结果(二进制) | 结果(十进制) |
|---|---|---|---|---|
| 第1位置0 | 1010 | & 1110 | 1010 | 10 |
| 第2位置0 | 1010 | & 1101 | 1000 | 8 |
| 第3位置0 | 1010 | & 1011 | 1010 | 10 |
| 第4位置0 | 1010 | & 0111 | 0010 | 2 |
💡优化技巧:由于 App Inventor 没有移位操作,可以用一个列表存
[1, 2, 4, 8, 16...],然后取出对应值做位运算,代码量比多分支判断少很多,逻辑也更清晰。
九、进制转换与数字格式化
- 进制转换:输入字符串和源/目标进制,返回转换后的字符串。比如
"10"从十进制转二进制得到"1010"。 - 格式化小数:指定小数位数,多了四舍五入,少了补零。
- 是否为数字:判断对象是否为数字类型,防止非法输入导致计算错误。
总结
App Inventor 2 的数学积木远比想象中强大——从基础四则运算到进制转换,从随机数生成到位运算,覆盖了绝大部分 App 开发中的数学需求。掌握这些积木,你就能:
- ✅ 处理购物车、评分等日常计算场景
- ✅ 做游戏中的物理模拟和概率判定
- ✅ 解析硬件协议中的二进制数据
- ✅ 实现数据可视化的坐标变换
建议把这篇指南收藏起来,开发时当字典查,随用随翻。
📚 相关资料
- 📄 完整文档:https://www.fun123.cn/reference/blocks/math.html
- 🏠 App Inventor 2 中文网:https://www.fun123.cn
觉得有用?点赞收藏,关注「App Inventor 2 中文网」,每周分享积木编程实战技巧。