Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 十六进制值00到ascii或字符_C++_Hex_Ascii - Fatal编程技术网

C++ 十六进制值00到ascii或字符

C++ 十六进制值00到ascii或字符,c++,hex,ascii,C++,Hex,Ascii,我正在编写自适应哈夫曼算法,我遇到了一个问题。一个字节接一个字节地读取JPG文件,最终在这个十六进制值00上碰撞。我的程序将其读取为“0” 查看图片: 如您所见,前两个字符用字符前面的值表示-一些数字“char” 在第三种情况下,只传递了零,但我的算法对它没有任何作用,因为它不代表char。如何解决这个问题,我还需要将这些值存储到我的树中,以便压缩并最终解压缩 CheersAchar是一个数字(在大多数系统中,它是一个8位数字,但不是全部)。您看到的是IDE用一个带引号的等效ASCII字符显示数

我正在编写自适应哈夫曼算法,我遇到了一个问题。一个字节接一个字节地读取JPG文件,最终在这个十六进制值00上碰撞。我的程序将其读取为“0”

查看图片:

如您所见,前两个字符用字符前面的值表示-一些数字“char”

在第三种情况下,只传递了零,但我的算法对它没有任何作用,因为它不代表char。如何解决这个问题,我还需要将这些值存储到我的树中,以便压缩并最终解压缩


Cheers

A
char
是一个数字(在大多数系统中,它是一个8位数字,但不是全部)。您看到的是IDE用一个带引号的等效ASCII字符显示数值。并非所有字符都映射到可打印的ASCII字符(有关更多信息,请参阅)

如果IDE认为没有可打印的等价物,它就不会麻烦打印单个引用的等价物。当您在代码中用单引号括起某个字符时,您是在告诉编译器将该字符替换为等效的数字ASCII字符。因此,以下是等效的:

#include<stdio.h> // C
#include<cstdio>  // C++
int main()
{
  char x = 'A';
  char y = 65;
  if (x == y)
  {
    printf("var x is the same as y. '%c' == '%c'\n", x, y);
  }
  else
  {
    printf("ERROR: var x is different then y. '%c' == '%c'\n", x, y);
  }
}

0
不是可打印字符,您希望如何处理二进制零?顺便说一句,这在每个基上都是零,零就是零。这里没有表示二进制零的“char”,我不知道你想实现什么?我看不到任何代码可以帮助你。任何类型的“读取”例程都可以将二进制数据读入内存。该内存可以读取为char、unsigned char、int等等。我相信你在这里可能有一个概念上的问题。在这里发布一些代码。我将二进制零表示为
\0
我知道你想告诉我什么。但是你能帮我吗,我怎么能把它储存在树上,这样我就可以再看一遍呢?如果你熟悉哈夫曼算法,你就知道它存储了他得到的每个字符或每个符号。所以0也是一个符号,当我解压缩它时,我需要写回它。怎么做?用谷歌搜索就不难找到哈夫曼。我自己也用专业的方法编写过几次代码。只需四处看看。它已经在正常的txt文件中工作,其中字符通常是代表性的。但是有了一个jpg文件和一个00十六进制,我就完蛋了。我只需要解决这个问题,然后它就可以解决你问题中的一个例子,我会尝试回答它。我已经解决了这个问题。这是一个概念问题。我添加了一个布尔值来检查这是否是树中正确的“符号”。最后,它也加入了零,并对其进行了正确编码。图像在不丢失任何数据的情况下进行压缩和解压缩。至于管理员,我很抱歉问了一个“愚蠢”的问题,尽管这些答案帮助我理解了我的问题,我最终会问正确的问题。谢谢大家的回答!
var x is the same as y. 'A' == 'A'