字元與整數的關係 大小寫的轉換和減 0 問題)

2021-09-09 05:49:15 字數 1158 閱讀 6793

計算機只是一堆模擬和數字的積體電路,它們只能明白0和1兩種高低電平,其他什麼也不理解,那麼人們怎麼操作機器呢?剛開始只是通過0110這樣打孔來操作機器,後來慢慢有了彙編和其他高階語言來操作機器。

既然不管字元還是字串資料在計算機中都只能用01來表示,那我們怎麼區分他們的不同呢,很簡單,就是使用多位的0和1來表示,1個不夠區分就用2個還不夠就依次往上加,而7個01就可以表示128個不同的數了,也就是說多少位就可以表示2的幾次方個不同的資料。

那麼哪些二進位制數代表什麼資料,這需要乙個統一的編碼規則,否則大家就會通訊混亂,於是,人們提出了ascii碼,統一規範了常用符號必須由哪些二進位制數表示,這樣人們一旦使用了相同的編碼規則就可以互相通訊了。

計算機中的字元包括數值、英文本母、標點符號、製表符號及其他符號。每乙個字元都用乙個特定的二進位制**來表示,這就是字元的編碼。目前,字元編碼採用的是美國資訊交換標準**,即ascii 碼。它是用乙個位元組的低七位來表示乙個字元的編碼, 2^7 =128 ,最高位是 0 ,所以,用 ascii 碼可表示 128 個字元)。有了這個我們就不怕我們輸入的字元,計算機不懂了。於是只要我們自己在程式中輸入乙個字元(例如:『a』)計算機在編譯過程中自動將它轉換成97的二進位製碼,這就是為什麼說字元本質上也是整型了,因為字元變數只是告訴計算機,我這個資料只佔乙個位元組,也就是說我超不出128這個數去。而int則告訴我這個數可能很大,有65534那麼大呢。

下面就說說為什麼字元減』0』可以到相應的整數。現在比如我們要字元『1』轉換成數字1,就這麼乙個變化,我們注意到字元型常量用』'括起來的原因是,它們在計算機中都以各自的ascii表示。而『1』的對應編碼是49的二進位製碼,但是我們的數字1,就等於1呀,所以為了由原來的『1』實際上就是49的二進位制變成現在的1對應的二進位制1,只好用49-48=1了。但是在ascii碼裡『0』對應的剛好是48的二進位製碼,所以我們轉換的時候只需要『1』-『0』=1;就可以了。而數字的ascii碼是按順序規定的。所以其它字元要轉換成數字都可以用減『0』來表示。比如『2』的ascii是50,而我們要得到數字2,於是用『2』-48=2了。看來當我們知道資料在計算機中的儲存規則的時候,問題就迎刃而解了。

大小寫字母的轉換:先看ascii碼:a ~ z是97~122的二進位制,而a ~ z是65~90的二進位制編碼,於是我們就得出:大寫字母=小寫字母-32 ;這個公式了。當然這裡的32我也可以這麼寫『z』=『z』-『空格』。因為空格的ascii碼是32對應的二進位制編碼。

字元大小寫的轉換

在python中有下面一堆內建函式,用來實現各種型別的大小寫轉化 看例子 a qiwsir,python a.upper 將小寫字母完全變成大寫字母 qiwsir,python a 原資料物件並沒有改變 qiwsir,python b a.upper b qiwsir,python c b.lowe...

字元大小寫轉換

題目1 寫乙個程式,要求功能 求出用1,2,5這三個數不同個數組合的和為100的組合個數。如 100個1是乙個組合,5個1加19個5是乙個組合 include using namespace std int func int num node string n,string i,char s,int...

大小寫字元轉換

include stdio.h include string.h include void inv char s void main a z 0x41 0x5a.小寫字元範圍為 a z 0x61 0x7a.可以發現,對應的大小寫字元之間的規律為,小寫字元比相應大寫字元大0x20,即10進製的32。所...