我想將一些信息保存爲文本文件(.txt格式)。爲了減小文件大小,我使用16位二進制數的每一位來表示一些信息。例如,對於一個16位二進制數0000 0001 1000 1111
,每一位都有其特定的含義。由於任何ASCII字符等於8位二進制數,所以我想我的16位數字轉換爲兩個字符並將其保存:是否可以將16位二進制數轉換爲兩個字符並將其保存爲文本文件?
uint16_t a;
a = 13 << 10 | 1 << 3 | 2;// a is a 16bit binary number
char b, c;
b = (char)(a>>8);
c = (char)a;// convert a to two characters
然後,我將節省B和C到一個文本文件。當我稍後閱讀文本文件時,我會將這兩個字符轉換爲16位二進制數並獲取信息。問題是我知道一些ASCII字符不可打印,所以我想知道是否有任何問題?任何答案將不勝感激!
當您嘗試打印時,非打印字符只是一個問題。或者通過一些只能處理可打印字符的系統來運行文件。只要每個人都把文件視爲二進制數據(你不應該真的叫這個ASCII - 它只有7位),一切都很好。 – Thilo
感謝您的回答!我將把這些字符保存到一個txt文件中,然後我會使用一個軟件壓縮它,例如winzip。我不確定是否有可能做到這一點。 – LiuGui
我認爲如果你把這個二進制文件稱爲一個二進制文件,並給它一個不同的擴展名,比如說「.bin」,它會避免很多混淆。有沒有理由不能? –