我编码自适应霍夫曼算法,我有一个问题。在字节i之后读取JPG文件字节最终会碰到这个十六进制值00.我的程序读取为' 0'。
查看图片:http://shrani.si/f/u/Ub/3Yv2Q0LA/napaka.jpg
如您所见,前两个字符在char之前用值表示。 -somenumber' char'。
在第三种情况下,只有零传递,但我的算法不会对它做任何事情,因为它不代表char。我怎么能解决这个问题,我需要将这些值存储到我的树中,这样我就可以压缩并最终解压缩。
干杯
答案 0 :(得分:2)
char
是 数字 (在大多数系统上,它是8位数字,但不是全部)。你看到的是IDE显示数字值与单引号ASCII字符等价物。并非所有字符都映射到可打印的ASCII字符(有关详细信息,请参阅here)。
如果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);
}
}
输出结果为:
var x is the same as y. 'A' == 'A'