Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.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 int-to-char对话添加了garabge字符_C++_C_Arrays_Casting - Fatal编程技术网

C++ C int-to-char对话添加了garabge字符

C++ C int-to-char对话添加了garabge字符,c++,c,arrays,casting,C++,C,Arrays,Casting,我正在尝试将int转换为4个字节。出于某种原因,它最终会在末尾添加一些垃圾特殊字符 int _tmain(int argc, _TCHAR* argv[]) { int num = 31070; char arr[4]; arr[0] = num & 0xFF; arr[1] = (num >> 8) & 0xFF; arr[2] = (num >> 16) & 0xFF; arr[3] = (n

我正在尝试将int转换为4个字节。出于某种原因,它最终会在末尾添加一些垃圾特殊字符

int _tmain(int argc, _TCHAR* argv[])
{
    int num = 31070;

    char arr[4];

    arr[0] = num & 0xFF;
    arr[1] = (num >> 8) & 0xFF;
    arr[2] = (num >> 16) & 0xFF;
    arr[3] = (num >> 24) & 0xFF;

    return 0;
 }
这里是调试窗口的输出,您可以看到它为arr[0]和arr[1]添加了^和y


我尝试过铸造之类的方法,但仍然添加了这些垃圾角色。

这些不是垃圾角色。这些是十进制数的ascii表示形式。调试器只是向您显示ascii表示形式。在此表中查找94和121:


数据似乎显示为字符,因为它是字符类型变量。如果不喜欢,请使用其他调试器或查找设置来禁用它们。您误解了调试输出。它只是告诉你94是字符“^”,而另一个字符也是一样的。它试图通过给你额外的信息来帮助你。如果对您没有帮助,请忽略它。尝试使用uint8\u t类型。在使用位时,总是首选无符号类型。位移位和按位and的顺序不是反转整数的字节吗?除非你打算从索引3到索引0顺序阅读。我知道了,非常感谢各位。