設字符串長度為n ,長度為 ⌈n/3⌉*4 ⌈⌉ 代表上取整
先看一個來自牛客網的題目
在網絡傳輸數據時,經常需要將二進制數據轉換為一個可打印字符串。一般用到的可打印字符集合包含64個字符,因此又稱為Base64表示法。現有一個char數組長度為12,要將它表示為Base64字符串,請問Base64字符串最少需要( ) 個char;如果char數組長度為20,則需要( )個char。
16,28
base64的編碼都是按字符串長度,以每3個8bit的字符為一組,
然后針對每組,首先獲取每個字符的ASCII編碼,然后把ASCII編碼轉換成8bit二進制,得到24bit;
再把這24bit每六個划分,高位用0補齊,得到4個8bit的字節,
然后再將這4個8bit的字節轉換成十進制,對照Base64編碼表,
得到對應編碼后的字符。
如果字符串的長度不能被3整除,多出來的部分用0補齊,對應的輸出字符為“=”