【问题标题】:Binary file containing all ASCII characters包含所有 ASCII 字符的二进制文件
【发布时间】:2015-04-24 12:27:35
【问题描述】:

是否有包含所有 256 个 ASCII 字符的二进制文件(.dat 文件)?我想在我的霍夫曼压缩算法上测试它。

通常使用 vim 等文本编辑器创建文件时,我将无法添加控制字符等奇怪的字符。我想知道是否有人知道是否有这样的文件可供使用,或者我是否知道可以自己做一个。

【问题讨论】:

  • 准确地说:ASCII 中只有 128 个字符。
  • 此外,使用vim,您可以键入 128 ASCII 中的所有控制字符,方法是在它们前面加上 CTRL-V。
  • 我想我指的是扩展的ASCII码。
  • @maregor 你只是指字节,没有特定的编码。
  • 另外,找到一个十六进制编辑器并学习使用它。这相当于文本编辑器,但适用于非文本文件。

标签: c++ vim binary ascii


【解决方案1】:

您可以使用for(i=0;i<256;i++)printf("%c",i); 创建一个。

【讨论】:

    【解决方案2】:

    听起来很简单。
    有什么问题?

    void MakeFile(void)
    {
        unsigned char ascii[128] = {0};
        for(int i=1; i<ARRAY_SIZE(ascii); ++i)
        {
            ascii[i] = ascii[i-1]+1;
        }
    
        FILE* fp = fopen("all_ascii.txt", "w");
        if (fp == NULL) 
        {
            return;
        }
        fwrite(ascii, ARRAY_SIZE(ascii), 1, fp);
        fclose(fp);
    }
    

    【讨论】:

      【解决方案3】:

      我不知道这样的文件,但您可以使用这些字符的整数表示或十六进制等。您可以使用isprint() 函数检查它们是否可以表示,如果无法打印,它将返回 false。

      所以我要做的是使用循环并从第一个字符开始,然后使用该函数来确定它是否可以以字符形式表示,或者是否需要以其他方式表示。

      【讨论】:

        【解决方案4】:

        看看Random.org。 有一个white noise generator,它会生成一个音频文件,但您可以将它用于您的压缩测试。

        【讨论】:

          猜你喜欢
          • 2011-01-27
          • 1970-01-01
          • 2014-04-29
          • 1970-01-01
          • 2019-02-13
          • 1970-01-01
          • 2011-09-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多