位运算
按位与 &
数的2进制代码 按位与运算 用if ((a & 1) == 0) 代替 if (a % 2 == 0)来判断a是不是偶数。
按位或 |
数的2进制代码 按位或运算
按位异或 ^
数的2进制代码 按位异或运算 可以应用于 交换数字的值
a = a + b;
b = a - b;
a = a - b;
或者异或
a ^ a = 0
a ^ 0 = a
(a ^ b) ^ c = a ^ (b ^ c)
a = a ^ b
b = a ^ b = (a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a
a = a ^ b = (a ^ b) ^ b = (a ^ a) ^ b = b ^ 0 = b
按位取反~
连同符号位一起反转
左移
二进制码往左移 右边补0 左边舍去
右移
无符号逻辑右移 有符号符号位扩展
正数左边补0 负数左边补1 右边舍去
赋值运算符
= . [ ] += -=
=左边的是存入值 右边的是取值
X=X+10 左边X存入 数据 右边X取出数据 这个代码先执行右边
没有 a++、 a-- 这种自增自减运算符
常用数学函数
abs(x) 返回绝对值
math.ceil(x) 向上取整
math.floor(x) 向下取整
round( ) 保留整数只有一个小数时 4舍6入5看齐,奇进偶不进
round(x,y)保留y位小数 y大于等于1时 看y位的下下位是否存在 y默认为0
(x>y)-(x<y) x>y时返回1 x=y返回0 x<y返回-1
math.exp(x) 返回e的x次方
math.exp(x)返回绝对值 带有浮点数
math.log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
math.log10(x) 返回以10为基数的x的对数
max()
min()
math.modf(x) 返回x的小数和整数部分 返回值是一个元组
math.sqrt(x) 返回x的平方根
随机数
要导入 包
import random
random.random() 取0到1随机数 左闭右开
可以 用这个表示其他的范围 x*(50-2)+2 范围大小48 2到50
random.uniform(x, y) 随机生成实数,它在[x,y]范围内.
random.shuffle(list) 将序列的所有元素随机排序,修改原list 这个会改变原来的数据
random.choice(seq) 从序列中随机返回一个元素
random.randrange (start, stop,step) 从一个范围中返回一个值 这个值减去start必定为step的倍数
三角函数
导入
import math
math.sin(x)返回的x弧度的正弦值。 x输入的是度数值
math.cos(x)返回x的弧度的余弦值。
math.tan(x)返回x弧度的正切值。
math.acos(x) | 返回x的反余弦弧度值。
math.asin(x) | 返回x的反正弦弧度值。
math.atan(x) | 返回x的反正切弧度值。
弧度和度数的关系 角度 = 弧度 × (180 ÷ π)
math.atan2(y, x)返回给定的 X 及 Y 坐标值的反正切值。
高为Y,长为X 返回的是原点的角度的弧度值
math.degrees(x)将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
math.radians(x)将角度转换为弧度
数学常量
math.pi数学常量 pi(圆周率,一般以π来表示)
math.e 数学常量 e,e即自然常数(自然常数)。