day2作业:
1.下列四组数,依次为二进制、八进制和十六进制,符合要求的是(D)
a. 12, 77, 10
b. 12, 80, 10
c. 11, 78, 19
d. 11, 77, 19
2.二进制数加法运算的基本特点是“逢二进一”,即0+0=0,0+1=1,1+0=1,1+1=0并进位。运用这一基本法则和十进制运算的类似规律,得出二进制数加法运算1001+101的结果为(C)
a. 1001
b. 1010
c. 1110
d. 1101
7.八进制754中的数码7对应的位权是(C)
a. 10^2 b. 16^1 c. 8^2 d. 2^2
8.十进制数53转换成二进制数是(B)
a. 100101
b. 110101
c.100100
d.110100
9.(偏难)已知,十进制中的8在X进制中表示为11,即(10)8=(X)11。请问这个X进制具体为(B)进制
a. 6
b. 7
c. 8
d. 9
10.(偏难)二进制的1000001相当十进制的④_,二进制的100.001可以表示为4。
A: ① 62 ② 63 ③ 64 ④ 65
B: ① 23+2–3 ② 22+2–2 ③ 23+2–2 ④ 22+2–3
下面定义变量正确的是(AD)
a. a = b = c = 10
b. a,c = 10
c. in = 20
d. num = 10; t = 20n = 6784,以下能够获取到7 的方法有(CD)
a. n / 1000 % 100
b. n % 1000 / 100
c. n // 100 % 10
d. n // 10 % 100 // 10
13.以下表达式 10 / 4 + 23 // 4 * 2 - 30的计算结果是:__-17.5____。
1.数学运算符:+(加), -(减), *(乘), /(除), //(整除), %(取余), **(幂运算)
a.+,-,*,/,%和数学中的加、减、乘、除、求余的功能一模一样
a = 10 + 20
print(10+20)
print(100 - 20)
print(2*3.5)
print(5/2)
print(3%2)
b.//(整除)
求商,商只取整数部分
print(5//2)
print(6.3//2)
c.**(幂运算)
x**y -- x的y次方
print(2**3)
print(9**0.5)
练习: 取出一个4位整数的百位上的数。例如,取出1234中的2, 3512中5
print(number%1000//100)
print(number//100%10)
2.比较运算: >(大于), <(小于), ==(等于), !=(不等于), >=(大于等于), <=(小于等于)
所有的比较运算的结果都是布尔值
print(10 > 20)
print(10 < 20)
print(10 == 20)
print(10 == 10)
print(10 != 20)
print(20 >= 20)
print(20 <= 10)
3.逻辑运算符: and(与),or(或), not(非)
逻辑运算符操作的数据是布尔值,返回的结果也是布尔
a. and(与) -- 和、并且
两个都是True结果才是True,只要有一个是False结果就是False
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
要求学习成绩的几点是3.5以上,并且操评分不低于90
score = 4.0
score2 = 80
print(score>3.5 and score2>=90) # Flase
什么时候使用:要求两个或者多个条件同时满足
b.or(或) -- 或者
只要有一个是True结果就是True。两个都是False结果才是False
print(score>3.5 or score2>=90) # True
什么时候使用:要求两个或者多个条件只要一个条件满足就行
c. not(非)
Ture变成False, False就变成True
age = 20
年龄不小于18
print(not age<18)
print(age >= 18)
4.赋值运算符:=(赋值),+=, -=, *=, /=, %=, //=, **=
赋值符号的左边必须是变量;运算顺序是,先算赋值符号右边的值,然后再将右边的结果赋给左边
a. 变量 = 值
a = 10
b = 10 + 20
c = a+b # 40
d = a > 10
print(d)
b. 变量 += 值
这儿的变量必须是已经声明过的变量
a += 2 # 相当于 a = a+2
print(a)
b -= 10 # b = b-10
print(b)
c = 2
c *= 6
print(c)
5.运算符的优先级
正负 > 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
数学运算符中: ** > (*,/,%,//) > (+,-)
优先级高的先计算,如果优先级相同就从左往右依次计算。可以通过加括号,改变运算顺序
print(10 * 20 + 30 < 40 / 2 - 100)
#200 + 30 < 20 - 100
230 < -80
False
print(10 * 20 + (30 < 40) / 2 - 100)
10 * 20 + True / 2 - 100
200 + 0.5 - 100
100.5
print((10 * (20 + 30)) < (40 / 2 - 100))
print(-10 > -2 )
print(2 * 2 ** 3)
补充: 变量必须先声明,再使用。
num1 = 10; num2 = 20
num1
计算机中常用的进制有:二进制、八进制、十进制、十六进制
十进制:
1.基数:0,1,2,3,4,5,6,7,8,9 例如:7283, 23901
2.进位:逢10进1
3.十进制数上的每一位:123 = 100+20+3 = 10^2*1+10^1*2+10^0*3
3451 = 10^0*1 + 10^1*5 + 10^2*4 + 10^3*3
二进制:
1.基数:0,1 例如:110,10101,10001
2.进位:逢2进1
3.二进制数上的每一位:1011 = 2^0*1 +\
2^1*1 + 2^2*0 + 2^3*1 = 11(十进制)
数学规定:所有的数的0次方都是1
八进制:
1.基数:0,1,2,3,4,5,6,7
2.进位:逢8进1
3.八进制数上的每一位:123 = 8^0*3 +
8^1*2 + 8^2*1 = 83(十进制)
十六进制:
1.基数:0-9,a-f(A-F) -- a(10)~f(15) 例如:1af
2.进位: 逢16进1
3.十六进制数上的每一位:123 = 16^0*3 + \
16^1*2 + 16^2*1 = 291(十进制)
进制间的转换
1.二进制、八进制、十六进制 ---> 十进制
进制数^位数(从0开始)*每一位上的值的和
123(16) = 16^0*3 + 16^1*2 + 16^2*1 = 291(10)
123(8) = 8^0*3 + 8^1*2 + 8^2*1 = 83(10)
1011(2) = 2^0*1 + 2^1*1 + 2^2*0 + 2^3*1 = 11(10)
2.八进制、十六进制 ---> 二进制
将一位的八进制转换成3位的二进制。将一位的十六进制转换成4位的二进制
123(8) -> 001010011(2)
10(8) -> 001000(2)
123(16) -> 000100100011(2)
10(16) -> 00010000(2)
3.二进制 ---> 八进制、十六进制
将3位的二进制转换成1位的8进制。将4位的2进制转换成1位的16进制
001 010 011(2) -> 123(8)
0001 0010 0011 -> 123(16)
4.十进制 -> 二进制
相除取余法
python对进制的支持
python支持整数的二进制、八进制、十六进制。
1.python中二进制、八进制、十六进制数的表示
二进制:0b
print(0b11 + 10)
print(11+10)
print(bin(20)) # 将其他的数据转换成二进制 bin()
print(bin(0x20))
八进制:0o
print(0o11)
print(oct(20)) # 将其他的数据转换成八进制 oct()
print(oct(0b11011))
十六进制:0x
print(0xaf)
print(hex(20)) # 将其他的数据转换成十六进制 hex()