Day3_進制字符串位運算

一坯钦、進制

計算機在存儲數(shù)據(jù)時候都是以二進制的形式去存的
十進制预皇、十六進制、八進制婉刀、二進制

1.十進制

基數(shù):0吟温,1,2突颊,3鲁豪,4,5律秃,6爬橡,7,8棒动,9
進位;鋒十進一
每一位的值:123 = 1100 + 210 + 3*1

2.二進制

基數(shù):0糙申,1
所有的二進制數(shù)都是由0和1組成
進位:逢二進一
每一位的值:11011 = 12^0+121+0*22+12^3+12^4 = 27

3.八進制

基數(shù):0,1船惨,2柜裸,3,4粱锐,5疙挺,6,7
進位:逢8進1
每一位的值:111 = 18^0+181+1*82 = 73

4.十六進制

基數(shù):0-9卜范,a-f(A-F) a,b,c,d,e,f
進位:逢16進1
每一位的數(shù):111 = 116^0+1161+1*162 =273

5.進制之間的轉(zhuǎn)換

  • a.其他進制轉(zhuǎn)換成十進制:每一位上的數(shù)乘以進制冪次數(shù)的和
  • b.十進制轉(zhuǎn)其他進制:輾轉(zhuǎn)取余法
    123:(2)1111011
    123: (8) 173
    123: (16) 7B
  • c.二進制轉(zhuǎn)換成八進制:每3位二進制轉(zhuǎn)換成一次1位的八進制
    八轉(zhuǎn)換二衔统;一位八進制轉(zhuǎn)換成3位二進制
    (8)671 --> (2)110 111 001
  • d.二進制轉(zhuǎn)換成16進制:每4位轉(zhuǎn)換成1位
    67-->0110 0111
    八進制和十六位進制轉(zhuǎn)換都先轉(zhuǎn)換成二進制再轉(zhuǎn)換

6.python對進制的支持

python支持通過二進制鹿榜、八進制海雪、十進制和十六進制的形式來直接表示整數(shù)

  • a.十進制:直接寫得數(shù)字的值都是十進制的數(shù)
  • b.二進制:需要加前綴->0b
0b1010
  • c.八進制;需要加前綴-> 0o/0O
0o67
0o34
  • d.十六進制:需要加前綴-> 0x/0X
0x78af
number = 0xfa5

print(type(0xfa))
  • e.進制的轉(zhuǎn)換
    bin(整數(shù))-->將括號中的整數(shù)舱殿,轉(zhuǎn)換成二進制形式的數(shù)
print(bin(10),bin(0o56),bin(0xaf))

oct(整數(shù))--> 將括號中的整數(shù)奥裸,轉(zhuǎn)換成八進制形式

print(oct(10),oct(0b110110),oct(0xaf))

hex(整數(shù))--> 將括號中的整數(shù),轉(zhuǎn)換成十六進制形式

print(hex(10),hex(0b110110),hex(0xaf))

二沪袭、原碼湾宙、反碼和補碼

計算機在存數(shù)字的時候,存的是數(shù)字的二進制的補碼
計算機內(nèi)存的最小單位是位冈绊,1位只是存儲兩個狀態(tài)
8位 = 1字節(jié)

a.原碼:數(shù)字的二進制形式

十進制的10的原碼就是:1010
最高位是符號位侠鳄,如果正數(shù)符號位為0,負數(shù)符號位為1
10的原碼 00000000 00001010
-10的原碼 10000000 00001010

b.反碼

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

c.補碼

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

總結(jié):正的反碼和補碼都是原碼伟恶;負數(shù)的補碼是反碼加1,反碼就是原碼符號位不變毅该,其他位取反
為什么計算機存儲數(shù)據(jù)的時候存補碼博秫?:因為計算機中只有加法器潦牛,只能進行加操作
存原碼對負數(shù)進行加操作的時候有問題

三、位運算

計算機存數(shù)字存補碼挡育,計算的時候也是補碼巴碗,最后結(jié)果看的時候看原碼
位運算符:&(按位與),|(按位或), ^(異或), ~(取反)即寒,>>(右移), <<(左移)

&(按位與)

數(shù)字1 & 數(shù)字2 :二進制的每一位橡淆,兩個都為1結(jié)果才是1,否則為0

 3 & 2 --> 00000011 & 00000010  == 00000010
 -3 & 2--> 11111101 & 00000010 == 00000000
print(3&2)
print(-3&2)

作用:讓指定位上數(shù)置零母赵,或者保留夢一位上的值

2.|(按位或)

數(shù)字1 | 數(shù)字2:只要有一個為1明垢,結(jié)果就是1;兩個都為0市咽,結(jié)果才是0
-3 | 2--> 11111101 | 00000010 == 11111111(補碼) == 100000001(原碼)

print(-3|2)

3. ^(異或)

數(shù)字1 ^ 數(shù)字2:不同為1痊银,相同為0
-3 ^ 2--> 11111101 ^ 00000010 == 11111111(補碼) == 100000001(原碼)

print(-3^2)

4.~(取反)

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

print(~-3)

5.左移

數(shù)字 << 位數(shù) :將補碼移動指定位數(shù),后面用零補齊

print(10 << 1)
print(-10 << 1)
print(-10 << 4)

左移特點 : 結(jié)果 == 數(shù)字2^位數(shù) m << n == m(2^n)

num * 2 == num << 1 num * 4 == num << 2

6.右移

數(shù)字 >> 位數(shù):將補碼向右移動指定的位數(shù)施绎,符號位不變溯革,在符號位的后面補指定個數(shù)的0(正)或者1(負)
規(guī)律(只適用于正數(shù)): m >> n == m // (2^n)

print(10 >> 1)
print(-10 >> 1)
print(-10 >> 2)
print(-15 >> 1)

四、字符串

字符串(str)

python中通過單引號或者雙引號引起來的字符集就是字符串
字符串中引號中的字符集谷醉,就是由各種不同的字符來組成

'4444adc'
'龍海'

2.Unicode編碼

python中字符串中字符采用的是Unicode編碼
Unicode編碼致稀,是通過兩個字節(jié)來對一個字符進行編碼。0 ~ 2^16-1
幾乎包含了世界上所有字符
ASSCII編碼:是通過一個字節(jié)對一個字符編碼
Unicode編碼包含ASSCII編碼表
chr(數(shù)字):獲取數(shù)字在Unicode編碼表中對應的字符俱尼,返回的是只有一個字符的字符串

print(chr(97))
 ord(字符):獲取字符對應的Unicode碼
print(ord('龍'))
print(ord('海'))

可以直接在字符串中寫字符對應的編碼值抖单,格式:\u十六進制編碼

str1 = '\u4e00\u4e01'
print(str1)

3.轉(zhuǎn)義字符(適用于所有語言)

一些特殊功能或者具有特殊意義的字符,直接放在字符串的引號中無效遇八,需要通過\來轉(zhuǎn)移
\n ---> 換行
'--->'
\t ---> 制表符(四個空格)
\ --->
"--->"

str1 = 'helloworld'
str1 = '\thello\tworld'
print(str1)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矛绘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子刃永,更是在濱河造成了極大的恐慌货矮,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斯够,死亡現(xiàn)場離奇詭異囚玫,居然都是意外死亡,警方通過查閱死者的電腦和手機读规,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門抓督,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人束亏,你說我怎么就攤上這事铃在。” “怎么了枪汪?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵涌穆,是天一觀的道長怔昨。 經(jīng)常有香客問我,道長宿稀,這世上最難降的妖魔是什么趁舀? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮祝沸,結(jié)果婚禮上矮烹,老公的妹妹穿的比我還像新娘。我一直安慰自己罩锐,他們只是感情好奉狈,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涩惑,像睡著了一般仁期。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竭恬,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天跛蛋,我揣著相機與錄音,去河邊找鬼痊硕。 笑死赊级,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的岔绸。 我是一名探鬼主播理逊,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盒揉!你這毒婦竟也來了晋被?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤预烙,失蹤者是張志新(化名)和其女友劉穎墨微,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扁掸,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年最域,在試婚紗的時候發(fā)現(xiàn)自己被綠了谴分。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡镀脂,死狀恐怖牺蹄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薄翅,我是刑警寧澤沙兰,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布氓奈,位于F島的核電站,受9級特大地震影響鼎天,放射性物質(zhì)發(fā)生泄漏舀奶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一斋射、第九天 我趴在偏房一處隱蔽的房頂上張望育勺。 院中可真熱鬧,春花似錦罗岖、人聲如沸涧至。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽南蓬。三九已至,卻和暖如春哑了,著一層夾襖步出監(jiān)牢的瞬間蓖康,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工垒手, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蒜焊,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓科贬,卻偏偏與公主長得像泳梆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子榜掌,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

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

  • 進制基本概念 什么是進制?進制是一種計數(shù)的方式,數(shù)值的表示形式 常見的進制十進制优妙、二進制、八進制憎账、十六進制 進制書...
    極客江南閱讀 2,014評論 0 11
  • 網(wǎng)站亂碼問題我們會經(jīng)常碰到套硼,大多見于非英文的中文字符或其他字符亂碼,而且胞皱,這類問題常常是因為編碼方式問題邪意,主要原因...
    波段頂?shù)?/span>閱讀 2,867評論 1 9
  • 進制基本概念 什么是進制?進制是一種計數(shù)的方式,數(shù)值的表示形式 常見的進制十進制、二進制反砌、八進制雾鬼、十六進制 進制書...
    低頭看云閱讀 842評論 0 1
  • 1.進制 ??計算機在存儲數(shù)字的時候是以二進制的形式去存的,進制有二進制宴树,八進制策菜,十進制,十六進制,如下表所示: ...
    逆流而上_2eb6閱讀 363評論 0 0
  • 進制 計算機在儲存數(shù)據(jù)的時候都是以二進制的形式去存的a.十進制基數(shù):0~9進位:逢10進1 b.十六進制:基數(shù):0...
    葉葉阿姨閱讀 231評論 0 0