day3-作業(yè)
1.下列四組數(shù)梗脾,依次為二進(jìn)制散怖、八進(jìn)制和十六進(jìn)制酒请,符合要求的是(d)
a. 12, 77, 10
b. 12, 80, 10
c. 11, 78, 19
d. 11, 77, 19
2.二進(jìn)制數(shù)加法運(yùn)算的基本特點(diǎn)是“逢二進(jìn)一”霎肯,即0+0=0柑土,0+1=1逆济,1+0=1酌予,1+1=0并進(jìn)位。運(yùn)用這一基本法則和十進(jìn)制運(yùn)算的類似規(guī)律奖慌,得出二進(jìn)制數(shù)加法運(yùn)算1001+101的結(jié)果為(c)
a. 1001
b. 1010
c. 1110
d. 1101
7.八進(jìn)制754中的數(shù)碼7對(duì)應(yīng)的位權(quán)是(c)
a. 10^2 b. 16^1 c. 8^2 d. 2^2
8.十進(jìn)制數(shù)53轉(zhuǎn)換成二進(jìn)制數(shù)是(b)
a. 100101
b. 110101
c.100100
d.110100
9.(偏難)已知抛虫,十進(jìn)制中的8在X進(jìn)制中表示為11,即(10)8=(X)11简僧。請(qǐng)問(wèn)這個(gè)X進(jìn)制具體為(b)進(jìn)制
a. 6
b. 7
c. 8
d. 9
10.二進(jìn)制的1000001相當(dāng)十進(jìn)制的④建椰,二進(jìn)制的100.001可以表示為④_。
A: ① 62 ② 63 ③ 64 ④ 65
B: ① 23+2–3 ② 22+2–2 ③ 23+2–2 ④ 22+2–3
11.使用位運(yùn)算判斷一個(gè)數(shù)是否是奇數(shù)
注:奇數(shù)的二進(jìn)制的最后一位是1岛马,偶數(shù)是0
12.表達(dá)式0x13&0x17的值是(0x13 )
13.若x=2,y=3則x&y的結(jié)果是(2 )
14.表達(dá)式 ord('a') | ord('z') 的運(yùn)算結(jié)果是(123)
15.在位運(yùn)算中棉姐,操作數(shù)每右移一位屠列,其結(jié)果相當(dāng)于(b )
A.操作數(shù)乘以2 B.操作數(shù)除以2
C.操作數(shù)除以4 D.操作數(shù)乘以4
16.設(shè)x 是一個(gè)整數(shù)(16位).若要通過(guò)x|y使x低度8位置1,高8位不變伞矩,則y的二進(jìn)制數(shù)是( )
day2-學(xué)習(xí)總結(jié)
1.進(jìn)制
計(jì)算機(jī)在存儲(chǔ)數(shù)字的時(shí)候都是以二進(jìn)制的形式去存的
十進(jìn)制笛洛,十六進(jìn)制,八進(jìn)制乃坤,二進(jìn)制
十進(jìn)制
基數(shù):0苛让,1,2,3,4,5,6,7,8,9,
進(jìn)位:逢10進(jìn)1
每一位的值:123=1100+210+31=1102=2*10+3100^
111=1100+1*101+110^2=111
2.二進(jìn)制
所有二進(jìn)制都是由0和1組成
基數(shù):0,1
進(jìn)位:逢2進(jìn)1
每一位的值:11011=120+1*21+02^2+123+1*24=27
3.八進(jìn)制
基數(shù):0,1,2,3,4,5,6,7
進(jìn)位:逢8進(jìn)1
每一位的值:111=18^0+181+1*82=73
4.十六進(jìn)制
基數(shù):0-9湿诊,a-f(A-F)-->a(10),b(11),c(12),d(13),e(14),f(15)
進(jìn)位:逢16進(jìn)1
每一位的值:111=116^0+1161+1*162=273
5.進(jìn)制之間的轉(zhuǎn)換
a.其他進(jìn)制轉(zhuǎn)換成10進(jìn)制:每一位上的數(shù)乘以進(jìn)制冪次數(shù)的和狱杰,然
后求和
b.十進(jìn)制轉(zhuǎn)其他進(jìn)制:輾轉(zhuǎn)取余法
123:(2)1111011 60:(2)111100
123:(8)173
123:(16)7B
c.二進(jìn)制進(jìn)轉(zhuǎn)8進(jìn)制:每三位二進(jìn)制轉(zhuǎn)換成1位
八進(jìn)制轉(zhuǎn)2進(jìn)制:一位8進(jìn)制轉(zhuǎn)換成3位的2進(jìn)制
(8)671-->(2)110111001
c.二進(jìn)制轉(zhuǎn)16進(jìn)制:每四位轉(zhuǎn)換成1位
16轉(zhuǎn)2:一位的16進(jìn)制轉(zhuǎn)換成4位的2進(jìn)制
(16)67-->(2)01100111
6.python對(duì)進(jìn)制的支持
Python支持通過(guò)二進(jìn)制,八進(jìn)制厅须,十進(jìn)制仿畸,和十六進(jìn)制的形式來(lái)直接表示整數(shù)
a.十進(jìn)制:直接寫(xiě)的數(shù)字的值都是10進(jìn)制的數(shù)
10
100
76
b.二進(jìn)制:需要加前綴->0b/OB
number=0b1110
number2=0b1110+10
print(number2)
c.八進(jìn)制:需要加前綴->0o/0O
0o67
0o34
d.十六進(jìn)制:需要加前綴->0x/oX
0x78af
number=0xfa5
print(number)
print(type(0xfa))
e.進(jìn)制的轉(zhuǎn)換(結(jié)果是字符串)
bin(整數(shù))-->將括號(hào)中的整數(shù)轉(zhuǎn)換成二進(jìn)制形式的數(shù)
print(bin(10)),bin(0o56),bin(0xaf)
print(typebin(10))
oct(整數(shù))-->將括號(hào)中的整數(shù)轉(zhuǎn)換成八進(jìn)制形式
print(oct(10)),oct(0b110110),oct(0xaf)
hex(整數(shù))-->將括號(hào)中的整數(shù)轉(zhuǎn)換成十六進(jìn)制形式
print(hex(10)),hex(0b110110),hex(0o56)
2.源碼,反碼九杂,和補(bǔ)碼
計(jì)算機(jī)在存數(shù)字的時(shí)候颁湖,存的是數(shù)組的二進(jìn)制的補(bǔ)碼
計(jì)算機(jī)內(nèi)存的最小單位是位:1位只能存儲(chǔ)兩個(gè)狀態(tài)
8位=1字節(jié)
a.源碼:整數(shù)數(shù)字的二進(jìn)制形式就是他的源碼
十進(jìn)制的10的源碼就是:1010
最高位是符號(hào)位,如果是正數(shù)符號(hào)位為0例隆,負(fù)數(shù)符號(hào)位為1
10的源碼 00000000 00001010
-10的源碼 10000000 00001010
b.反碼
正數(shù)的反碼是它的源碼
負(fù)數(shù)的反碼就是這個(gè)數(shù)的源碼的符號(hào)位不變甥捺,然后其他位置上的數(shù)取反(0->1,1>0)
10->源碼00000000 00001010->反碼 11111111 11110101
c.補(bǔ)碼
正數(shù)的補(bǔ)碼就是它的源碼
負(fù)數(shù)的補(bǔ)碼是它的反碼加1
-10->反碼11111111 11110101->補(bǔ)碼11111111 11110110
總結(jié):正數(shù)的反碼和補(bǔ)碼都是源碼,負(fù)數(shù)的補(bǔ)碼是反碼加1镀层,反碼是源碼符號(hào)位不變镰禾,其他位取反 為什么計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的時(shí)候存補(bǔ)碼?:因?yàn)橛?jì)算機(jī)中只有加法器唱逢,只能進(jìn)行加操作吴侦,存源碼對(duì)負(fù)數(shù)進(jìn)行加操作的時(shí)候有問(wèn)題
3.位運(yùn)算
計(jì)算機(jī)數(shù)字存補(bǔ)碼,計(jì)算的時(shí)候也是補(bǔ)碼坞古,最后結(jié)果看到時(shí)候是源碼
位運(yùn)算符:&(按位與)备韧,|(按位或),^(異或)痪枫,~(取反)织堂,>>(左移),<<(右移)
2.&(按位與)
數(shù)字1&數(shù)字2:二進(jìn)制 的每一位奶陈,兩個(gè)都為1結(jié)果才是1易阳,否則為0
3&2==>00000011&00000010==00000010
-3&2-->11111101&00000010==00000000
print(3&2)
print(-3&2)
作用:讓指定上數(shù)置零,或者保留某一位上的值
- |(按位或)
數(shù)字1|數(shù)字1吃粒,只要有一個(gè)為1潦俺,結(jié)果就是1,兩個(gè)都是1,結(jié)果才是0
3|2-->00000011|00000010=00000011
-3|2-->11111101|00000010=(補(bǔ)碼)11111111=100000001
print(3|2)
print(-3|2)
3.^(異或)
數(shù)字1^數(shù)字2:不同為1事示,相同為0
3^2-->00000011^00000010=0000001
-3^2-->11111101^00000010=11111111
print(3^2)
print(-3^2)
4.~取反
~數(shù)字:將每一位取反
~3-->~00000011=11111100
~-3-->11111101=00000010
print(~3)
print(~-3)
5.左移
數(shù)字<<位數(shù):將補(bǔ)碼向左移動(dòng)指定的位數(shù)早像,符號(hào)位不變,后面補(bǔ)指定個(gè)數(shù)的0(正)或者1(負(fù))
規(guī)律(正數(shù)和負(fù)數(shù)都實(shí)用):m<<n==m*(2^n)
print(10<<2) #10*2^1 10*2^2 10*2^3
print(-10<<2)
print(2<<2)
num*2==num<<1 num*4==num<<2
6.右移
數(shù)字>>位數(shù):將補(bǔ)碼向右移動(dòng)指定的位數(shù)很魂,符號(hào)位不變扎酷,的符號(hào)位的后面補(bǔ)指定個(gè)數(shù)的0(正)或者1(負(fù))
規(guī)律(只適用于正數(shù)):m>>n==m//(2^n)
print(10>>1)
print(-10>>1)
print(10>>2)
4.字符串簡(jiǎn)單認(rèn)識(shí)
字符串(str)
1.什么是字符串
python中通過(guò)單引號(hào)或雙引號(hào)引起來(lái)的字符集就是字符串
字符串中的字符集,就是由各種不同的字符來(lái)組成的
2.Unicode編碼
Python中字符串中字符采用的是Unicode編碼
Unicode編碼遏匆,就通過(guò)兩個(gè)字節(jié)對(duì)一個(gè)字符進(jìn)行編碼,0-2^15(32768)谁榜,它幾乎包含了世界上所有的符號(hào)
ASCII編碼:是通過(guò)一個(gè)字節(jié)來(lái)對(duì)一個(gè)字符進(jìn)行的編碼
Unicode編碼中包含了ASCII碼表
chr(數(shù)字):獲取數(shù)字在Unicode編碼表中對(duì)應(yīng)的字符幅聘,返回的是只有一個(gè)字符串
print(chr(97))
print(chr(0x1812))
print(chr(0x1b02))
ord(字符):獲取字符對(duì)應(yīng)的Unicode碼
print(ord('秋'),ord('容'))
print(0xffff)
str:可以直接在字符串中寫(xiě)字符對(duì)應(yīng)的編碼值,格式:\u四位十六進(jìn)制
str1='\u4e00\u4e01'
print(str1)
3.轉(zhuǎn)移字符(適用于所有語(yǔ)言)
一些特殊功能和具有特殊意義的字符窃植,直接放在字符串的引號(hào)中無(wú)效帝蒿,需要通過(guò)\來(lái)轉(zhuǎn)義
\n-->換行
`-->`
\t-->制表符
\-->
、"-->"
str1=('hell\world')
print(str1)
str2='hello\nworld'
print(str2)