它保存为0和1,但是文本编辑器将它们作为字节读取(它将它们分组为8位)并使用ASCII显示它们.[1]
当您写入文本文件时,需要付出很多努力来解释您希望编写的二进制数据,以便将其放入人类可读的格式中.
例如,如果你写的数字255
,那就把它带到形式'2'
,'5'
,'5'
(这是个字符!),然后写这些的每个字符.
如果它写入二进制文件,它只会在文件中放入实际的二进制数据.这取决于它是什么类型的变量(它代表它的多少个八位字节)以及endianess和其他东西.如果它是unsigned char,它将放入二进制文件0b11111111
(这是实际的原始数字,而不是字符!).
[1] http://www.asciitable.com/
这只是编辑器或命令对文件的文本表示.在内部所有文件都存储在HDD/SDD/RAM/...上的0和1 - 尝试使用十六进制编辑器打开文件bless
(在Linux上易于使用,Windows需要Mono - 或者搜索您想要的另一个十六进制编辑器使用)来查看字节的存储方式.此外,我建议使用bless
因为if提供不同格式的不同表示.
在您的代码中,您可以使用read方法按字节存储内容并解释它.如果您一次读取多个字节,请记住可能的字节顺序.那就是Little和Big Endian系统以"反向"顺序存储和读取字节.0x1337
正在阅读的单词可能被理解为0x3713
.只需熟悉这个术语,并在必要时使用维基百科了解如何处理此问题.