回覆列表
  • 1 # 迷夢雨夜

    二進位制哪來的串?科普一下二進位制是資料最基本的資料儲存(因為儲存介質只有有1無0兩種狀態),比其高一級的都屬於怎麼利用二進位制儲存資料,整形用32位儲存也就是2進位制數長度32位來儲存1111 1111 1111 1111 1111 1111 1111 1111其中最高位是符號位(無符號就多了一位儲存),長整型(long)就是64位,位元組8位。

    字串是更高一級的位元組排布的編碼方式,常用的有常規ASCII字串(每個位元組代表一個字元)以8位二進位制值0000 0000結尾9也就是1個值為0的位元組結束);還有UTF-8編碼,每一個位元組的最高兩位空出來做標識位(第一個位元組除外有另外含義),每個位元組只使用6位,3個位元組可以組成12+x位(x≥4)也就是兩個完整位元組,詳細編碼方式可以找找資料,記憶體中也是一一個值為0的位元組結尾,這種編碼方式編碼半形字元沒有額外開銷,一個位元組表示一個字元,儲存中文等一些外文字元每個字元需要佔用一個1位元組的描述位;還有UNICODE編碼方式,這種編碼每一個字元都用兩個位元組儲存(包括半形字元)

    怎麼匹配效率更高,就是字元匹配次數更少,也就字串越短效率越高,考慮到載入字串的時間開銷,當然就是記憶體中字串儲存長度更短的那種了(ASCII),不考慮串載入的話是沒有比較的性的。我們選擇字元編碼方式是被動選擇的,決定權基本不在開發人員手裡,如果你儲存的全是半形英文數字符號,那麼你用ASCII或UTF-8,這樣最省空間,如果你儲存的是中文或外文文章,就選擇UNICODE編碼。

  • 中秋節和大豐收的關聯?
  • 如何看待全球首例寵物貓確診感染新冠病毒?對新冠疫情的防控有何影響?