国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

常見進(jìn)制轉(zhuǎn)換的Python求解

2022-08-31 01:03:02蔣芋言
電腦報(bào) 2022年33期
關(guān)鍵詞:取模數(shù)字電路字符串

蔣芋言

我們?cè)诰幊虒W(xué)習(xí)中必然會(huì)用到進(jìn)制的轉(zhuǎn)換,常見的進(jìn)制有二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制。

二進(jìn)制,計(jì)算機(jī)作為一個(gè)數(shù)字電路的產(chǎn)物,它能直接識(shí)別的語言就是二進(jìn)制,二進(jìn)制就是只有0和1兩個(gè)數(shù)字,這兩個(gè)數(shù)字就代表著數(shù)字電路的導(dǎo)通和截止兩個(gè)狀態(tài),就像一個(gè)開關(guān)一樣。八進(jìn)制和十六進(jìn)制,主要是為了簡化二進(jìn)制繁瑣的表現(xiàn)形式。

十進(jìn)制則是我們?nèi)粘J褂玫摹?/p>

利用Python自帶的函數(shù)或者是求商求余去實(shí)現(xiàn)常見進(jìn)制間的相互轉(zhuǎn)換。

這里我們使用Python的內(nèi)置函數(shù)int,int函數(shù)的輸入是一個(gè)任意進(jìn)制的數(shù),輸出是它的十進(jìn)制形式,格式為int (x,base),x是純數(shù)字或者字符串,base是進(jìn)制數(shù),是對(duì)x是幾進(jìn)制的描述。

輸出為2,31,17,31,8。

當(dāng)我們需要帶小數(shù)的進(jìn)制轉(zhuǎn)換的時(shí)候會(huì)出現(xiàn)問題,print(int(2.5))得到的結(jié)果是2,而不是2.5;以及print(int(‘2.5’,10)),會(huì)直接報(bào)錯(cuò),不允許輸入為小數(shù)的字符串。

Python中已經(jīng)為我們封裝好了相應(yīng)的函數(shù),我們只需要提前知道各個(gè)進(jìn)制的英文名稱,然后在代碼中使用縮寫即可,二進(jìn)制bin(binary)、八進(jìn)制oct(octonary)、十進(jìn)制dec(decimalism)、十六進(jìn)制hex(hexadecimal)

在這里十進(jìn)制數(shù)我們用10舉例子

輸出為

有人可能要問了,為什么10的二進(jìn)制是0b1010而不是1010呢?明明應(yīng)該是后者啊。這里就涉及計(jì)算機(jī)中數(shù)字顯示的問題了,在計(jì)算機(jī)中,如果顯示的結(jié)果數(shù)字是以二進(jìn)制表示的,會(huì)顯示為0+bin+真實(shí)的結(jié)果,八進(jìn)制就是0+o+真實(shí)的結(jié)果,十六進(jìn)制就是0+x+真實(shí)的結(jié)果,大家看懂了嗎?

有人可能又要提出疑問了,標(biāo)題不是任意進(jìn)制嗎?那我五進(jìn)制、六進(jìn)制這種沒有提前準(zhǔn)備好的函數(shù)怎么辦呢?這里就需要我們進(jìn)行特殊處理

我們要進(jìn)行十進(jìn)制轉(zhuǎn)換只需要調(diào)用funciton函數(shù)即可,x表示輸入的十進(jìn)制數(shù),y表示需要的進(jìn)制

輸入:function(10,5)

輸出:20

(1) a是輸出用的數(shù)字、字母庫,b是用來存放要用的數(shù)字或字母。

(2) 首先輸入x,y對(duì)x求商,如果是0,表示進(jìn)制數(shù)直接比數(shù)字x大,然后直接輸出x在a庫里的值。

(3) 對(duì)x求商如果不是0,y對(duì)x取余后的值賦給b,一直進(jìn)行while循環(huán),直至y對(duì)x取商為0,跳出循環(huán)。

(4) reverse函數(shù)的作用是將表b里面的內(nèi)容反向排序,至于為什么是倒序呢?是這樣的,第一次y對(duì)x取模,相當(dāng)于y的零次方,位于進(jìn)制轉(zhuǎn)換后的最低位,第二次y對(duì)x取模,相當(dāng)于y的一次方,位于進(jìn)制轉(zhuǎn)換后的倒數(shù)第二位,以此類推,這樣我們最后得到的b是反過來的,所以使用reverse函數(shù)就能獲得我們的答案了。

代碼本身具有局限性,只能表示到十六進(jìn)制,更高的進(jìn)制需要用更多的英文字母去表示,這里沒有再進(jìn)行列舉。

3. 二進(jìn)制、八進(jìn)制、十六進(jìn)制三者間的轉(zhuǎn)換

其實(shí)我們把前面講過的幾個(gè)函數(shù)(int函數(shù)、oct函數(shù)等)稍作結(jié)合就可以達(dá)到這個(gè)目的,其核心在于用十進(jìn)制作為轉(zhuǎn)換的橋梁。

輸出結(jié)果為

1. 前面用到的進(jìn)制轉(zhuǎn)換十分依賴int、bin、oct、hex等進(jìn)制轉(zhuǎn)換函數(shù),其實(shí)完全可以利用上面提到的任意進(jìn)制轉(zhuǎn)換,利用求商求余,去等效實(shí)現(xiàn)這幾個(gè)函數(shù)的作用。

2.對(duì)小數(shù)的進(jìn)制轉(zhuǎn)換沒有涉及。

猜你喜歡
取模數(shù)字電路字符串
關(guān)于不定方程x2-pqy4=16的正整數(shù)解
關(guān)于商高數(shù)的Je?manowicz猜想*
關(guān)于不定方程x2-8y4=M(M=17,41,73,89,97)*
基于數(shù)字電路的定時(shí)器的設(shè)計(jì)
電子制作(2019年22期)2020-01-14 03:16:46
關(guān)于不定方程x2-5y4=236
MATLAB在數(shù)字電路教學(xué)中的應(yīng)用
電子測試(2018年23期)2018-12-29 11:11:48
基于數(shù)字電路的密碼鎖設(shè)計(jì)與實(shí)現(xiàn)
數(shù)字電路實(shí)驗(yàn)的設(shè)計(jì)分析
電子制作(2017年1期)2017-05-17 03:54:28
一種新的基于對(duì)稱性的字符串相似性處理算法
依據(jù)字符串匹配的中文分詞模型研究
鄂伦春自治旗| 吕梁市| 女性| 景宁| 宁蒗| 海安县| 新竹市| 乐都县| 肇庆市| 合作市| 泽库县| 天津市| 黄冈市| 收藏| 怀安县| 镇平县| 北碚区| 土默特右旗| 屏山县| 紫金县| 白玉县| 玉树县| 沂水县| 曲麻莱县| 简阳市| 新野县| 两当县| 盘山县| 兰考县| 哈密市| 扶余县| 乌兰县| 奉贤区| 桐梓县| 阿克陶县| 长治县| 龙南县| 荥阳市| 龙井市| 株洲县| 宝丰县|