看過一個漫畫, 兩位程序員在辦公司交流, 但是說的語言倒是010101相似的字符串.周圍人非常驚異.計算機的世界,確實是由01組成的.今天忽然想實現這個編碼轉換.javascript
char
類型的字符,實際存儲的是這個字符的ASCII碼. 最終轉換是數值的進制.也就是把10進制的數字轉換成2進制的數值, 而後,每位轉換成字符, 輸出便可. 固然, 若是你考慮到多種語言環境的話, 那麼就會複雜不少. 使用強類型語言的話, 這裏建議使用Qt類庫的QChar
和QString
.Qt支持多國語言很是好.var str = "支持中文嗎? ying gai shi zhi chi de."; console.log('編碼前:'+ str); var total2str = ""; for (var i = 0; i < str.length; i++) { var num10 = str.charCodeAt(i); ///< 以10進制的整數返回 某個字符 的unicode編碼 var str2 = num10.toString(2); ///< 將10進制數字 轉換成 2進制字符串 if( total2str == "" ){ total2str = str2; }else{ total2str = total2str + " " + str2; } } console.log("編碼後:" + total2str); var goal = ""; var arr = total2str.split(' '); for(var i=0; i < arr.length; i++){ var str2 = arr[i]; var num10 = parseInt(str2, 2); ///< 2進制字符串轉換成 10進制的數字 goal += String.fromCharCode(num10); ///< 將10進制的unicode編碼, 轉換成對應的unicode字符 } console.log('解碼後:'+ goal );
編碼前:支持中文嗎? ying gai shi zhi chi de. 編碼後:110010100101111 110001100000001 100111000101101 110010110000111 101010000010111 111111 100000 1111001 1101001 1101110 1100111 100000 1100111 1100001 1101001 100000 1110011 1101000 1101001 100000 1111010 1101000 1101001 100000 1100011 1101000 1101001 100000 1100100 1100101 101110 解碼後:支持中文嗎? ying gai shi zhi chi de.
Js String 標準庫java