第十一章 繼續(xù)壓縮
二進制轉(zhuǎn)為36進制的方法,能夠勝任這個地圖實例的壓縮。
但如果地圖更大一些,比如6X6、7X7大小,就會暴露出一個問題。
一行的二進制數(shù)字有可能需要更多字符來表示。
比如:
“100110”
這個二進制數(shù)字用36進制來表示,得到:
“12”
壓縮后的字符串還是占了2的長度,效果并不理想?yún)取?p> 那么,該怎樣改進呢?
程序猿靈機一動,又想到了一種更好的方法。
首先,將這個二進制數(shù)字表示為10進制,得到“38”:
“100110”-“38”
然后,將這個“38”看作是字符的UTF-16編碼,返回對應(yīng)的字符。
?。↗avaScript代碼)
String.fromCharCode(38);
調(diào)用返回:“&”
沒錯,這個“按位與”符號就是壓縮后的結(jié)果!
這樣的壓縮方案,更徹底,只需要1個字符...
更酷!
有了好的方案,編寫代碼自然是很容易的事情啦。
楊成對地圖信息實例壓縮后,給檢查站的工作人員發(fā)送短信。
“哥們,真感謝你”。
科勒文拍了拍他的肩膀。
此時,夕陽完全落山,大地被黑暗所籠罩。
“嘀...嘀...”
科勒文的手機鈴聲及時地響起。
“游客您好,我是景區(qū)工作人員,剛收到了你們的坐標(biāo)信息”。
“鑒于夜晚來臨,會給搜救工作帶來麻煩”。
“請你們先找個安全的地方,耐心等待”。
“我們將派出一臺尋路機器人,帶你們返回”。