一階段day3-進(jìn)制顾瞻、原碼反碼補(bǔ)碼泼疑、位運(yùn)算、字符串

一荷荤、進(jìn)制

計(jì)算機(jī)在存儲(chǔ)數(shù)據(jù)的時(shí)候都是以二進(jìn)制的形式去存儲(chǔ)的
十進(jìn)制退渗、十六進(jìn)制、八進(jìn)制蕴纳、二進(jìn)制

1氓辣、十進(jìn)制

123、4袱蚓、65、34255765879808
基數(shù):0几蜻、1喇潘、2、3梭稚、4颖低、5、6弧烤、7忱屑、8、9暇昂;
進(jìn)位:逢10進(jìn)1莺戒;
每一位的值:123=1 * 100+2 * 10+3 * 1=1 * 10^2 + 2 * 10^1+ 3 * 10^0

2、二進(jìn)制

所有二進(jìn)制數(shù)都是由0和1組成急波; 1011从铲、1100
基數(shù):0、1澄暮;
進(jìn)位:逢2進(jìn)1名段;
每一位的值: 11011 =1 * 2^4 + 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0=27
print(1 * 2 ** 4+1 * 2 ** 3+0 * 2 ** 2+1 * 2 ** 1+1 * 2 ** 0) #27
即(二進(jìn)制)11011=(十進(jìn)制)27

3、八進(jìn)制

基數(shù):0泣懊、1伸辟、2馍刮、3信夫、4、5、6忙迁、7
進(jìn)位:逢8進(jìn)1脐彩;
每一位的值: 3415 =3 * 8^3 + 4 * 8^2 + 1 * 8^1 + 5 * 8^0=1805
print(3 * 8 ** 3 + 4 * 8 ** 2 + 1 * 8 ** 1 + 5 * 8 ** 0) #1805
即(八進(jìn)制)3415=(十進(jìn)制)1805

4、十六進(jìn)制

基數(shù):0姊扔、1惠奸、2、3恰梢、4佛南、5、6嵌言、7嗅回、8、9摧茴、a绵载、b、c苛白、d娃豹、e、f
進(jìn)位:逢16進(jìn)1购裙;
每一位的值: 111 =1 * 16^2 + 1 * 16^1 + 1 * 16^0 = 273
print(1 * 16 ** 2 + 1 * 16 ** 1 + 1 * 16 ** 0) #273
即(十六進(jìn)制)111=(十進(jìn)制)273

5懂版、進(jìn)制之間的轉(zhuǎn)換

a、其他進(jìn)制轉(zhuǎn)換成10進(jìn)制:每一數(shù)位上的數(shù)乘以進(jìn)制的慕次數(shù)躏率,然后求和躯畴;
b、10進(jìn)制轉(zhuǎn)換成其他進(jìn)制:輾轉(zhuǎn)取余法薇芝;
例如 十進(jìn)制轉(zhuǎn)換二進(jìn)制:

十進(jìn)制30轉(zhuǎn)換二進(jìn)制11110

即十進(jìn)制的數(shù)字30轉(zhuǎn)換成二進(jìn)制為11110蓬抄;
例如十進(jìn)制轉(zhuǎn)換八進(jìn)制:

十進(jìn)制30轉(zhuǎn)換八進(jìn)制36

即十進(jìn)制的數(shù)字30轉(zhuǎn)換成八進(jìn)制為36;
c夯到、2進(jìn)制轉(zhuǎn)換8進(jìn)制:從右往左取數(shù)倡鲸,每取3位二進(jìn)制轉(zhuǎn)換成1位八進(jìn)制;
例如: 1 111 111=100* (1* 2^0)+ 10* (1* (2^2+ 2^1+ 2^0 ))+1* (2^2 +2^1 +2^0)=177
d黄娘、2進(jìn)制轉(zhuǎn)換16進(jìn)制:從右往左取數(shù)峭状,每取4位二進(jìn)制轉(zhuǎn)換成1位十六進(jìn)制;
例如: 111 1101=0111 1101=
10* (0* 2^3 +1* (2^2 +2^1 +2^0)) +1* (2^3 + 2^2 +2^0)+ 0*2^1=7d逼争;
e优床、8進(jìn)制轉(zhuǎn)換2進(jìn)制:從右往左取數(shù),每取1位八進(jìn)制轉(zhuǎn)換成3位二進(jìn)制誓焦;
f胆敞、16進(jìn)制轉(zhuǎn)換成2進(jìn)制:從右往左取數(shù)着帽,每取1位十六進(jìn)制轉(zhuǎn)換成4位二進(jìn)制;

6移层、Python對進(jìn)制的支持

Python支持通過二進(jìn)制仍翰、八進(jìn)制、十進(jìn)制观话、十六進(jìn)制的形式來直接表示整數(shù)予借;

a、十進(jìn)制:直接寫入的數(shù)字的值都是十進(jìn)制的數(shù)频蛔;
b灵迫、二進(jìn)制:需要在數(shù)字前面加前綴————>0b(零B)
print(0b1111)   #15(十進(jìn)制)
c、八進(jìn)制:需要在數(shù)字前面加前綴————>0o(零歐)
print(0o765)    #501(十進(jìn)制)
d晦溪、十六進(jìn)制:需要在數(shù)字前面加前綴————>0x(零叉)
print(0xda23)   #55843(十進(jìn)制)
 e瀑粥、進(jìn)制的轉(zhuǎn)換(結(jié)果是字符串,非數(shù)字)
bin(整數(shù))————>將括號內(nèi)的整數(shù)三圆,轉(zhuǎn)換成二進(jìn)制形式的數(shù)
print(bin(31))     #十進(jìn)制31轉(zhuǎn)二進(jìn)制 11111
print(bin(0o4327)) #八進(jìn)制4327轉(zhuǎn)二進(jìn)制 100011010111
otc(整數(shù))————>將括號內(nèi)的整數(shù)狞换,轉(zhuǎn)換成八進(jìn)制形式的數(shù)
print(oct(31))     #十進(jìn)制31轉(zhuǎn)八進(jìn)制37
print(oct(0o4327)) #八進(jìn)制4327轉(zhuǎn)八進(jìn)制4327
hex(整數(shù))————>將括號內(nèi)的整數(shù),轉(zhuǎn)換成十六進(jìn)制形式的數(shù)
print(hex(31))     #十進(jìn)制31轉(zhuǎn)十六進(jìn)制 1f
print(hex(0o4327)) #八進(jìn)制4327轉(zhuǎn)十六進(jìn)制 x8d7

二舟肉、原碼哀澈、反碼和補(bǔ)碼

計(jì)算機(jī)在存數(shù)字的時(shí)候,存的是數(shù)字的二進(jìn)制的補(bǔ)碼
計(jì)算機(jī)內(nèi)存的最小單位是位:1位只能存儲(chǔ)兩個(gè)狀態(tài)
8位 = 1字節(jié)

數(shù)據(jù)單位

a度气、原碼:整數(shù)數(shù)字的二進(jìn)制形式

十進(jìn)制的10的二進(jìn)制原碼就是:1010
最高位是符號位,如果正數(shù)符號位為0膨报,負(fù)數(shù)符號位為1
以16位存儲(chǔ)數(shù)字的二進(jìn)制為例
10的原碼 00000000 00001010
-10的原碼 10000000 00001010

b磷籍、反碼

正數(shù)的反碼是它的原碼
負(fù)數(shù)的反碼就是這個(gè)數(shù)的原碼符號位不變,然后其他位置上的數(shù)取反(0->1,1->0)
-10 -> (原碼)10000000 00001010 ->(反碼)11111111 11110101

c现柠、補(bǔ)碼

正數(shù)的補(bǔ)碼就是它的原碼
負(fù)數(shù)的補(bǔ)碼是它的反碼加1
-10 -> (反碼)11111111 11110101 -> (補(bǔ)碼)1111111 11110110

d院领、總結(jié):正數(shù)的反碼和補(bǔ)碼都是原碼;負(fù)數(shù)的補(bǔ)碼是其反碼加1;反碼是原碼符號位不變够吩,其他位取反比然;

問題:為什么計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的時(shí)候存補(bǔ)碼鲸鹦?
答:因?yàn)橛?jì)算機(jī)中只有加法器兼砖,只能進(jìn)行加操作。
計(jì)算機(jī)存儲(chǔ)數(shù)字存的是其補(bǔ)碼膏萧,其加計(jì)算也是在補(bǔ)碼上完成的湾笛,
但最后結(jié)果反饋給人們看的時(shí)候饮怯,
我們需要看原碼,因?yàn)檠a(bǔ)碼無法直觀展示大泻垦小蓖墅;
原碼、反碼和補(bǔ)碼的意義:原碼是反饋給人們直觀看的;
反碼是一個(gè)中間值论矾,目的在于求出補(bǔ)碼以及返回原碼教翩;
補(bǔ)碼是用來給計(jì)算機(jī)進(jìn)行加操作的;

三贪壳、位運(yùn)算

計(jì)算存儲(chǔ)數(shù)字存補(bǔ)碼饱亿,計(jì)算的時(shí)候也是補(bǔ)碼,最后我們看結(jié)果看的是原碼
位運(yùn)算符:&(按位與)寥袭,|(按位或), ^(異或), ~(取反), >>(右移)路捧, <<(左移)

1、&(按位與)

數(shù)字1 & 數(shù)字2 :兩個(gè)都為1結(jié)果才是1传黄,否則為0杰扫;

3 & 2  --> 0000 0011 & 0000 0010 == 0000 0010
-3 & 2 --> 1111 1101 & 0000 0010 == 0000 0000
print(3&2)  #2
print(-3&2) #0

作用:讓指定位上數(shù)置零,或者保留某一位上的值膘掰;

2章姓、|(按位或)

數(shù)字1 | 數(shù)字2: 只要有一個(gè)為1,結(jié)果就是1识埋;兩個(gè)都為0凡伊,結(jié)果才是0

3 | 2  --> 0000 0011 | 0000 0010                 =     0000 0011
-3 | 2 --> 1111 1101 | 0000 0010 = (補(bǔ))1111 1111 = (原)1000 0001 
print(3|2)  #3
print(-3|2) #-1

3.^(異或)

數(shù)字1 ^ 數(shù)字2: 不同為1,相同為0

3^2  --> 0000 0011 ^ 0000 0010                 = 0000 0001
-3^2 --> 1111 1101 ^ 0000 0010 = (補(bǔ))1111 1111 = 1000 0001
print(3^2)  #1
print(-3^2) #-1

4.~(取反)

~數(shù)字:將每一位取反

~3  ---> ~0000 0011 = 1111 1100(補(bǔ)) = 1000 0100
~-3 ---> ~1111 1101                 = 0000 0010
print(~3)  #-4
print(~-3) #2

5.左移(重點(diǎn)掌握)

數(shù)字 << 位數(shù): 將補(bǔ)碼向左移動(dòng)指定的位數(shù)窒舟,
符號位不變系忙,在最后面補(bǔ)指定個(gè)數(shù)的0
規(guī)律(正數(shù)和負(fù)數(shù)都實(shí)用):m << n == m * (2^n)

print(10 << 1)    # 20     10*2^1=20
print(-10 << 1)   # -20    -20*2^1=-20
print(2 << 2)     # 8       2*2^2=8
print(-23 << 2)   # -92   -23*2^2=-92
# num * 2 == num << 1 ; num * 4 == num << 2

6.右移

數(shù)字 >> 位數(shù): 將補(bǔ)碼向右移動(dòng)指定的位數(shù)惠豺,符號位不變银还,
在符號位的后面補(bǔ)指定個(gè)數(shù)的0(正)或者1(負(fù))
規(guī)律(只適用于正數(shù)):m >> n == m // (2^n)
規(guī)律(只適用于能整除的負(fù)數(shù)):m >> n == m //(2^n)
規(guī)律(只適用于不能整除的負(fù)數(shù)):m >> n == m // (2^n)-1

print(10 >> 1)  #5     10/2^1=5   (正數(shù))
print(10 >> 2)  #2      10//2^2=2   (正數(shù))
print(-10 >> 1) #-5    -10//2^1=-5   (能被整除的負(fù)數(shù))
print(-10 >> 2) #-3    -10//2^2-1=-3  (不能被整除的負(fù)數(shù))

四、字符串

1洁墙、字符串(str)

定義:Python語言中蛹疯,通過單引號或者雙引號引起來的字符集就是字符串;
字符:字符串里的字符集热监,就是由各種不同的字符組成的捺弦;
例如:'fhoifjskddsjfsdsflds' '2132436570787'
'發(fā)揮而瘋狂的說法房間歐薩就發(fā)你是否對' 'がいに' '關(guān)鍵字'

2、Unicode編碼

Python中的字符串的字符采用的是Unicode編碼孝扛;
Unicode編碼:通過兩個(gè)字節(jié)來對一個(gè)字符進(jìn)行編碼列吼,
即可對0~2^16-1(65535)個(gè)字符進(jìn)行編碼,。它幾乎包含了世界上所有的符號苦始;
ASCII編碼:通過一個(gè)字節(jié)來對一個(gè)字符進(jìn)行編碼冈欢;
Unicode編碼中包含了ASCII編碼表;

chr(數(shù)字):獲取括號內(nèi)的數(shù)字在Unicode編碼表中對應(yīng)的字符盈简,

返回的是只有一個(gè)字符的字符串凑耻;
print(chr(4)) #EOT

ord(字符):獲取字符對應(yīng)的編碼值太示;

print(ord('蔣')) #33931

注意:也可以直接獲取字符對應(yīng)的編碼值,格式:\u十六進(jìn)制的編碼值香浩;

n1='gfr\u3124\ua23d積分';
print(n1)类缤;

輸出結(jié)果

3、轉(zhuǎn)義字符

一些特能和具有特殊意義的字符邻吭,直接放在字符串的引號中無效,需通過\來轉(zhuǎn)義餐弱;
print("hello\"world") # hello"world 中間雙引號之前不加\,會(huì)報(bào)語法錯(cuò)誤

輸出結(jié)果
\n表示換行囱晴;

print('好粉絲費(fèi)\n分手就分手') #在\n所處位置換行

輸出結(jié)果
\' 表示 '
\\ 表示 \
轉(zhuǎn)義字符列表
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膏蚓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子畸写,更是在濱河造成了極大的恐慌驮瞧,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枯芬,死亡現(xiàn)場離奇詭異论笔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)千所,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門狂魔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淫痰,你說我怎么就攤上這事最楷。” “怎么了待错?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵籽孙,是天一觀的道長。 經(jīng)常有香客問我朗鸠,道長,這世上最難降的妖魔是什么础倍? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任烛占,我火速辦了婚禮,結(jié)果婚禮上沟启,老公的妹妹穿的比我還像新娘忆家。我一直安慰自己,他們只是感情好德迹,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布芽卿。 她就那樣靜靜地躺著,像睡著了一般胳搞。 火紅的嫁衣襯著肌膚如雪卸例。 梳的紋絲不亂的頭發(fā)上称杨,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機(jī)與錄音筷转,去河邊找鬼姑原。 笑死,一個(gè)胖子當(dāng)著我的面吹牛呜舒,可吹牛的內(nèi)容都是我干的锭汛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼袭蝗,長吁一口氣:“原來是場噩夢啊……” “哼唤殴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起到腥,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤朵逝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后左电,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體廉侧,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年篓足,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了段誊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栈拖,死狀恐怖连舍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涩哟,我是刑警寧澤索赏,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站贴彼,受9級特大地震影響潜腻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜器仗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一融涣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧精钮,春花似錦威鹿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至臂容,卻和暖如春科雳,著一層夾襖步出監(jiān)牢的瞬間根蟹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工炸渡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娜亿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓蚌堵,卻偏偏與公主長得像买决,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子吼畏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容