Przechowywanie liczby dziesiętnej w pliku tekstowym z zaledwie 1 bajtem

0

Chcę zapisać liczbę 97 w pliku tekstowym. W systemie szesnastkowym jest to 0x61 i powinno zająć 8 bitów lub 1 bajt pamięci. Ale kiedy wpisuję 97 w pliku tekstowym, zajmuje 2 bajty pamięci (ponieważ przechowuje każdą cyfrę jako indywidualny znak). Zastanawiam się więc, czy jest jakiś sposób, aby zapisać numer w pliku tekstowym z zaledwie 1 bajtem pamięci?

Saurav Kumar Sahu
źródło

Odpowiedzi:

3

Możesz, liczba 97d w hex jest 61h

xxd może przechowywać i odczytywać dokładnie bajty, które chcesz.

Więc

C:\carp>echo 61|xxd -r -p >a.a

C:\carp>xxd -p a.a
61

C:\carp>

Innym sposobem jest otwarcie pliku w notatniku, wpisanie „a” i zapisanie go jako ascii (jest to ustawienie domyślne). Notatnik zapisze 0x61 w pliku. Notatnik odczyta go jako „a”, ale w pliku znajduje się wartość całkowita 97d aka 61h.

Możesz nawet napisać program wykonywalny w notatniku! Potrzebujesz wiedzy na temat montażu i upewnij się, że wpisujesz litery, których kodowanie w formacie binarnym jest tym, czego potrzebujesz!

Być może potrzebujesz programu, który odczytuje bajt z pliku aa i wyświetla jego wartość całkowitą. Polecenie byłoby idealne ... można je napisać ...

barlop
źródło
0

Tak. W Unicode małe litery a są reprezentowane przez 97. Z natury plik tekstowy reprezentuje znaki, więc przechowywanie liczb w ten sposób może przynieść efekt przeciwny do zamierzonego.

jdwolf
źródło
Jest to interesujące, ale nie w pełni odpowiada na pytanie, jak to zrobić.
Elliott B