其實進行進製轉換關鍵是要把位、位元組、字元、字串的概念弄清楚。
乙個帶符號的位元組能表示的數值範圍是-127~128,因此我們無論轉換進製為2進製、8進製、16進製制等等,甚至是128進製都可以考慮按位操作進行進製轉換,apache的commons-codec專案中針對16進製制轉換的方法**如下:
public static char encodehex(byte data)
return out;}
**中將乙個位元組分為兩個位元組進行儲存,這樣乙個位元組轉換為乙個字元來表示,這樣可以方便的轉換任何資料不用考慮符號丟失。至於乙個位元組轉換為兩個位元組的原則,根據需要轉換的不同進製設定兩個位元組的分界點,如16進製制的轉換,在乙個位元組中表示16為00001111,那麼低四位即為乙個位元組,高四位為另乙個位元組;同理,對於64進製,在乙個位元組中表示64為00111111,那麼低六位為乙個位元組,高兩位為另乙個位元組。
對於乙個byte陣列按照高低位元組的分配,獲取對應數值,通過此數值獲取對應進製相關位置的字元,如16進製制中第十個字元為a,那麼如果低位元組為10則對應16進製制的字元為a,同理,高位元組也對應轉換,最終取得16進製制的char陣列,此陣列轉為string即為我們常見的16進製制的字串。
我的64進製的實現**如下:
byte陣列轉換為64進製char陣列
public static char encode64digit(byte bytes)
return out;}
64進製char陣列轉換為byte陣列
public static byte decode64digit(char chars)
byte out = new byte[chars.length >> 1];
for (int i = 0, j = 0; j < chars.length; i++)
return out;
}
IT領域關於什麼(續)
在計算機出現之前,人們已經在廣泛的研究數學 應用數學。即便如此,數位化的開始也是在計算機出現之後,而從那以後,以計算機為主的it領域徹底改變了這個世界。雖然稱作傳統的it領域,但仍然是年輕而生機勃勃的領域,不僅因為從第一台電腦出現到現在才短短的五十多年,更因為這個領域還在飛速發展,它的市場已經開啟,...
關於個Base64,MD5,16進製制的轉換
1,待簽名資料以utf 8的格式轉位元組流,對位元組流進行md5演算法得到的簽名位元組流,再轉換為16進製制字串,即生成了數字簽名。2,待簽名資料以utf 8的格式轉位元組流,對位元組流進行md5演算法得到的簽名位元組流,再經過base64轉換為字串,即生成了數字簽名 md5 md5 new md5...
續 關於PubChempy的使用
import pubchempy as pcp c pcp.compound.from cid 4396 分子式 print c.molecular formula 分子質量 print c.molecular weight smiles print c.isomeric smiles iupac名...