Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.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 解码数组_C_Arrays_Unix_Encryption - Fatal编程技术网

C 解码数组

C 解码数组,c,arrays,unix,encryption,C,Arrays,Unix,Encryption,所以,我试图将这个数组解码成一个ASCII文本字符串 我不完全确定如何进行这项工作,我没有使用C语言的经验,但我可以使用文本编辑器或终端。在基于UNIX的平台GNU上,有什么工具可以使用吗 char name[] = { 0x64, 0160, (114-63), (064+03), 0x00 }; 谢谢大家! 如果使用printf%c,name[i]在每个名称索引的循环中打印此序列,它将自动将十六进制和八进制表示转换为十进制,并打印相关的ASCII符号当然,最简单的方法是编译和运行程序。但是

所以,我试图将这个数组解码成一个ASCII文本字符串 我不完全确定如何进行这项工作,我没有使用C语言的经验,但我可以使用文本编辑器或终端。在基于UNIX的平台GNU上,有什么工具可以使用吗

char name[] = { 0x64, 0160, (114-63), (064+03), 0x00 };

谢谢大家!

如果使用printf%c,name[i]在每个名称索引的循环中打印此序列,它将自动将十六进制和八进制表示转换为十进制,并打印相关的ASCII符号

当然,最简单的方法是编译和运行程序。但是,这并不是这种代码练习的真正目的。一旦你意识到这些只是数字的不同基本表示法,那么你就应该完成计算数字的任务,并在ascii表中查找它们。ascii表几乎肯定在教科书后面,或者在同一个教程网站上

记住算术的基本定理:

12345 = 1 *10^4 + 2 *10^3 + 3 * 10^2 + 4 * 10^1 + 5 * 10^0
0xABC = A * 16^2 + B * 16^1 + C * 16^0

您还可以使用功能足够强大的文本编辑器来研究这些问题。您需要自己进行加法,但在vim中,您可以按ctrl-V,然后按数字,然后按空格,然后可以删除空格。

如果整数值对应于ascii,您可以将它们转换为字符。字符实际上是C语言中的uint8。因此,如果您有对应于某种ascii码的整数,您可以简单地让编译器将其视为整数

它们只是字符代码。{十六进制,八进制,十进制,八进制,十六进制}。查找与值对应的ascii码。@MarcB+1。我的墙上贴着一个ascii表。man ascii也有帮助。你忽略了一个事实,例如,其中一个值大于127,因此它依赖于代码页,不一定是可移植的。代码验证不是问题的一部分,这将导致更广泛的争论:是在传输前检查代码还是在接收后检查代码,这还取决于所使用的通道类型和BW。带宽和通道类型如何远程影响代码?这将是OSI堆栈的不同级别,与此级别的编码无关。我指的是传输过程中代码的任何更改,这取决于通道类型和BW。是的,这在这个层次上是不相关的,这就是为什么我没有在这里讨论它。需要考虑的是,这里没有讨论标准的代码结构或限制。@ Dogbert,在0x64,0160,114-63,064 + 03,0x00中,哪个值是127?或者你是在讨论一般性问题?