2014-04-15 114 views
1

您好我刚刚编写了一个程序,用于编写一个文本文件,以0和1的形式对其进行编码,并将其保存为另一个文本文件。然而,这并没有解决我的目的,因为它占用了更多的空间。将包含0&1的文本文件转换为二进制文件

所以我想知道如何将包含这些0'S & 1的文本文件转换为二进制格式。

谢谢您提前。 :)

+1

使用位逻辑。位移(<<),按位和(&),并且计数到8(或32) – Bgie

+0

您可能将其保存为ASCII“1”和ASCII“0”,它们本身占用与其他任何字符一样多的位,保存到一些比特位,但可能需要查看一些代码来演示您所看到的问题。 –

回答

1

您可以循环文本,每次迭代从文本读取8个字符,这个数字该字节转换为一个字节,并写入与IOS ::二进制

更新文件:这可能需要你要知道你的机器是小/大端,取决于你如何转换为BYTE

+0

那么我得到了你解释的逻辑,但我并不十分清楚如何将8字节的字符转换为单个字节。另外,我对Endian概念有一些了解。你可以提供一些链接,这是解释?非常感谢。 – user3535581

+0

您可以使用'strtol'进行转换,这是一个例子: 'char * binStr; long binary = strtol(binStr,NULL,2); // 32字符,而不是8,因为我建议' 但请阅读关于strtol,因为它可以通过一个循环来解析整个文本。 关于endians(或去维基百科)的阅读[这里](http://stackoverflow.com/questions/701624/difference-between-big-endian-and-little-endian-byte-order) – ZivS

相关问题