Base16簡介
1、將二進(jìn)制的數(shù)據(jù)轉(zhuǎn)換為十六進(jìn)制(0x&&)來進(jìn)行顯示。
2、原二進(jìn)制一個字節(jié)為8個比特,而一位十六進(jìn)制字符代表的是四位二進(jìn)制,所以原二進(jìn)制的一個字節(jié)轉(zhuǎn)換成了兩個十六進(jìn)制的字符,兩個字符就是兩個字節(jié)。是原來大小的兩倍
Base16實(shí)現(xiàn)
1、準(zhǔn)備
首先看ASCII字符代碼表,確定我們用到的十六進(jìn)制字符即:48位-57位(0-9映射為0-9);65位-71位(A-F映射為10-15)。
Ps:由于兩部分不連續(xù),所以寫編碼和解碼的時(shí)候都要重新生成一個表,減小時(shí)間損耗。文章來源:http://www.zghlxwxcb.cn/news/detail-572087.html
2、代碼實(shí)現(xiàn)(編寫環(huán)境Vs2019)文章來源地址http://www.zghlxwxcb.cn/news/detail-572087.html
#include<iostream>
using namespace std;
//制作一個全局的靜態(tài)轉(zhuǎn)ASCII碼的對應(yīng)關(guān)系。四位二進(jìn)制是0-15所以我們對應(yīng)寫出轉(zhuǎn)換后的16進(jìn)制字符即可即0-F
static const char BASE16_ENC_TAB[] = "0123456789ABCDEF";
static const char BASE16_DNC_TAB[128] = {
//'0-9'對應(yīng)48-57 'A-F'對應(yīng)65-70
-1, //0
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //1-10
-1,-1,-1,-1,-1,-1,-1
到了這里,關(guān)于Base16的編碼和解碼原理及代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!