- 基础数字块 ( 0 )
- 进制数字块 ( 0 )
- 等于 ( = )
- 不等于 ( ≠ )
- 大于 ( > )
- 大于等于 ( ≥ )
- 小于 ( < )
- 小于等于 ( ≤ )
- 加 ( + )
- 减 ( - )
- 乘 ( * )
- 除 ( / )
- 幂运算 ( ^ )
- 随机整数 (random integer)
- 随机小数 (random fraction)
- 设定随机数种子 (random set seed to)
- 最小值 (min)
- 最大值 (max)
- 平方根 (square root)
- 绝对值 (abs)
- 相反数 (neg)
- 对数 (log)
- e^
- 四舍五入 (round)
- 上取整 (ceiling)
- 下取整 (floor)
- 求模 (modulo)
- 余数 (remainder)
- 商 (quotient)
- 正弦 (sin)
- 余弦 (cos)
- 正切 (tan)
- 反正弦 (asin)
- 反余弦 (acos)
- 反正切 (atan)
- 反正切2 (atan2)
- 将弧度转换为度数 (convert radians to degrees)
- 将度数转换为弧度 (convert degrees to radians)
- 数字转变为小数形式 (format as a decimal)
- 是否为数字 (is a number)
- 进制转换 (convert number)
- 按位与 (bitwise and)
- 按位或 (bitwise or Inclusive)
- 按位异或 (bitwise or Exclusive)
- 列表中出现次数最多的元素 (mode)
- 案例:指定将二进制的某一位(Bit)改为1
- 案例:指定将二进制的某一位(Bit)改为0
- 基础数字块 ( 0 )
- 进制数字块 ( 0 )
- 等于 ( = )
- 不等于 ( ≠ )
- 大于 ( > )
- 大于等于 ( ≥ )
- 小于 ( < )
- 小于等于 ( ≤ )
- 加 ( + )
- 减 ( - )
- 乘 ( * )
- 除 ( / )
- 幂运算 ( ^ )
- 随机整数 (random integer)
- 随机小数 (random fraction)
- 设定随机数种子 (random set seed to)
- 最小值 (min)
- 最大值 (max)
- 平方根 (square root)
- 绝对值 (abs)
- 相反数 (neg)
- 对数 (log)
- e^
- 四舍五入 (round)
- 上取整 (ceiling)
- 下取整 (floor)
- 求模 (modulo)
- 余数 (remainder)
- 商 (quotient)
- 正弦 (sin)
- 余弦 (cos)
- 正切 (tan)
- 反正弦 (asin)
- 反余弦 (acos)
- 反正切 (atan)
- 反正切2 (atan2)
- 将弧度转换为度数 (convert radians to degrees)
- 将度数转换为弧度 (convert degrees to radians)
- 数字转变为小数形式 (format as a decimal)
- 是否为数字 (is a number)
- 进制转换 (convert number)
- 按位与 (bitwise and)
- 按位或 (bitwise or Inclusive)
- 按位异或 (bitwise or Exclusive)
- 列表中出现次数最多的元素 (mode)
拓展案例:
内置块中找不到你要查找的数学代码块?
一些数学代码块是下拉列表,它们可以转换为不同的块。以下是每个下拉列表中包含的内容的列表:
基础数字块 ( 0 )
可用作任何正数或负数,单击该块中的“0”将允许更改数字。
该块支持普通的 10 进制(例如:2、12 和 2.12),以及带前缀的其他机制数字,包括:
- Base-2(
二进制
)数字,例如0b
10(等于十进制 2) - Base-8(
八进制
)数字,例如0o
14(等于十进制 12) - Base-16(
十六进制
)数字,例如0x
d4(等于十进制 212)
进制数字块 ( 0 )
默认表示 10 进制的数字,单击“0”将允许更改数字。点击下拉菜单可以切换 二进制
、八进制
、十进制
、十六进制
数字。
例如,这三个块是等效的:
下拉列表支持:十进制 (base-10)、二进制 (base-2)、八进制 (base-8) 和十六进制 (base-16) 输入格式。
十进制模式允许输入任何正数或负数(例如 2、-12、2.12)。其他模式仅允许您输入整数(也称为任何正数或零)。
等于 ( = )
测试两个数字是否相等并返回 真
或 假
。
不等于 ( ≠ )
测试两个数字是否不相等并返回 真
或 假
。
大于 ( > )
测试第一个数字是否大于第二个数字并返回 真
或 假
。
大于等于 ( ≥ )
测试第一个数字是否大于或等于第二个数字并返回 真
或 假
。
小于 ( < )
测试第一个数字是否小于第二个数字并返回 真
或 假
。
小于等于 ( ≤ )
测试第一个数字是否小于或等于第二个数字并返回 真
或 假
。
加 ( + )
返回将任意数量的具有数字值的块相加的结果。带有数字值的块包括基本数字块、列表或文本的长度、带有数字值的变量等。
该块是一个块拓展,可以扩展以允许更多数字相加。
减 ( - )
返回第一个数字减去第二个数字的结果。
乘 ( * )
返回任意数量的具有数字值的块相乘的结果。
它是一个 块拓展 块,可以扩展以允许更多数字相乘。
除 ( / )
返回第一个数字除以第二个数字的结果。
幂运算 ( ^ )
返回第一个数字的第二个数字次幂的结果。比如2^3 = 222 = 8
随机整数 (random integer)
返回给定值之间(包含首尾)的随机整数值。参数的顺序不限,也就是 1~100 和 100~1 效果一样。
随机小数 (random fraction)
返回 0 到 1 之间的随机值。
设定随机数种子 (random set seed to)
使用此块生成可重复的随机数序列。你可以通过使用相同值调用随机集种子来生成相同的随机数序列,这对于测试涉及随机值的程序很有用。
在科学技术和机器学习等其他算法相关任务中,我们经常需要用到随机数,为了把握随机数的生成特性,从随机数的随机无序中获得确定和秩序。我们可以利用
随机数种子(random seed)
来实现这一目标,随机数种子可以使得引入了随机数的整个程序,在多次运行中得到确定的、一致的结果。
最小值 (min)
返回一组数字的最小值。如果代码块中有未插入的槽,会被当做数字 0 进行计算。该块是一个 块拓展 ,有一个下拉列表。
最大值 (max)
返回一组数字的最大值。如果代码块中有未插入的槽,会被当做数字 0 进行计算。该块是一个 块拓展 ,有一个下拉列表。
平方根 (square root)
返回给定数字的平方根。如:9 的平方根将返回 3。
绝对值 (abs)
返回给定数字的绝对值。如:-3.3 的绝对值是 3.3,5 的绝对值是 5,0 的绝对值是 0。
相反数 (neg)
返回给定数字的负数,若给定负数则返回正数。如:8 返回 -8,-0.7 返回 0.7,0 则仍然返回 0。
对数 (log)
返回给定数字的自然对数,即以 e (2.71828…) 为底的对数。
e^
返回 e (2.71828…) 的给定数次方。
四舍五入 (round)
返回给定数字四舍五入到最接近的整数。如果小数部分 < .5,则会向下舍入;如果 > .5,则会向上舍入。
如果它恰好等于 0.5,则整数部分为偶数的数字将向下舍入,整数部分为奇数的数字将向上舍入(此方法称为舍入到偶数)。
上取整 (ceiling)
返回大于或等于给定数字的最小整数。如:3.01 返回 4。
下取整 (floor)
返回小于或等于给定数字的最大整数。如:3.88 返回 3。
求模 (modulo)
当 a 和 b 为正数时,求模(a,b) 与 余数(a,b) 相同。
更一般地,对任意 a 和 b 定义:求模(a,b),使得 ( 下取整(a/b) × b ) + 求模(a,b) = a。
例如,求模(11, 5) = 1、求模(-11, 5) = 4、求模(11, -5) = -4、求模(-11, -5) = -1。
求模(a,b) 始终与 b 具有相同的符号,而 余数(a,b) 始终与 a 具有相同的符号。
余数 (remainder)
余数(a,b) 返回 a 除以 b 并取余数的结果。余数是结果乘以 b 的小数部分。
例如,余数(11,5) = 1,因为11 / 5 = 2 1⁄5,在本例中,1⁄5 是小数部分。我们将其乘以 b(在本例中为 5),得到余数 1。
其他示例包括余数(-11, 5) = -1、余数(11, -5) = 1 和余数(-11, -5) = -1。
商 (quotient)
返回第一个数字除以第二个数字的结果并丢弃结果全部的小数部分。
正弦 (sin)
返回给定数字的正弦值(以度为单位)。
余弦 (cos)
返回给定数字的余弦(以度为单位)。
正切 (tan)
返回给定数字的正切值(以度为单位)。
反正弦 (asin)
返回给定数字的反正弦值(以度为单位)。
反余弦 (acos)
返回给定数字的反余弦值(以度为单位)。
反正切 (atan)
返回给定数字的反正切值(以度为单位)。
反正切2 (atan2)
给定 y 和 x,返回 y/x 的反正切值。
将弧度转换为度数 (convert radians to degrees)
返回给定数字(以弧度表示)的度数值。结果将是 [0, 360) 范围内的角度。
将度数转换为弧度 (convert degrees to radians)
返回给定数字(以度为单位)的弧度值。结果将是 [-π , +π) 范围内的角度。
数字转变为小数形式 (format as a decimal)
将数字格式化为小数,小数点后指定位数。位数必须是非负整数,如果位置太多结果是通过对数字进行四舍五入生成的;如果位置太少,则右侧补零。
是否为数字 (is a number)
如果给定对象是数字,则返回 真
,否则返回 假
。
进制转换 (convert number)
获取一个表示一个基数的正整数的文本字符串,并返回一个表示另一个基数的相同数字的字符串。
例如,如果输入字符串为 10,则从 10 进制转换为二进制将产生字符串 1010; 如果输入字符串相同为 10,则从二进制转换为基数 10 将生成字符串 2。如果输入字符串相同为 10,则从基数 10 转换为十六进制将生成字符串 A。
进制转换案例如下:
十进制 | 二进制 | 十六进制 |
---|---|---|
10 | 1010 | 0xA |
57 | 111001 | 0x39 |
255 | 11111111 | 0xFF |
按位与 (bitwise and)
对两个数字每一位进行 与操作
。仅当两个操作数的相应位都为 1 时,结果的每一位才为 1。
例子:
十进制 | 二进制 (内部展示) | |
---|---|---|
6 | 0 1 1 0 | |
3 | 0 0 1 1 | |
结果: | 2 | 0 0 1 0 |
按位或 (bitwise or Inclusive)
对两个数字每一位进行 或操作
。如果每个操作数中的任一对应位为 1,则结果的每个位为 1。
例子:
十进制 | 二进制 (内部展示) | |
---|---|---|
6 | 0 1 1 0 | |
3 | 0 0 1 1 | |
结果: | 7 | 0 1 1 1 |
按位异或 (bitwise or Exclusive)
对两个数字每一位进行 异或操作
。仅当操作数中对应的一位为 1、另一位为 0 时,结果的每一位才为 1。
例子:
十进制 | 二进制 (内部展示) | |
---|---|---|
6 | 0 1 1 0 | |
3 | 0 0 1 1 | |
结果: | 5 | 0 1 0 1 |
列表中出现次数最多的元素 (mode)
返回列表中出现次数最多的元素。
案例:指定将二进制的某一位(Bit)改为1
指定更新某一位为1,其他位不变:
举例:二进制 1010,更新第3位为1:将值和 0100
进行按位或操作。
原值 | 操作 | 结果(二进制) | 结果(十进制) | |
---|---|---|---|---|
更新第1位为1 | 1010 | | 0001 |
1011 | 11 |
更新第2位为1 | 1010 | | 0010 |
1010 | 10 |
更新第3位为1 | 1010 | | 0100 |
1110 | 14 |
更新第4位为1 | 1010 | | 1000 |
1010 | 10 |
由于 App Inventor 没有移位操作,只能用一个列表存 0001 0010 0100….然后拿出来按位操作,这样代码量相比多分支判断会少很多,逻辑也更清晰。
参考代码如下:
测试代码如下:
测试结果:14
案例:指定将二进制的某一位(Bit)改为0
指定更新某一位为0,其他位不变:
举例:二进制 1010,更新第3位为0:将值和 1011
进行按位与操作。
原值 | 操作 | 结果(二进制) | 结果(十进制) | |
---|---|---|---|---|
更新第1位为0 | 1010 | & 1110 |
1010 | 10 |
更新第2位为0 | 1010 | & 1101 |
1000 | 8 |
更新第3位为0 | 1010 | & 1011 |
1010 | 10 |
更新第4位为0 | 1010 | & 0111 |
0010 | 2 |
参考代码如下: