在 C 中将一个 int 转换为一个 4 字节的 char 数组

标签 c arrays char byte

<分区>

Possible Duplicate:
Converting an int into a 4 byte char array (C)

使用 Dynamic C 程序(语言是 C),我试图将一个 int 转换为一个 4 位长的字节数组。到目前为止,我已经在网上查看并找到了一些示例。但是,似乎没有一个对我有用。我有一个持续的问题,打印了正确的字节数,但由于某种原因它们重复了两次。我提供了以下代码:

void main(){
 int a=1379;
 int i=0;
 unsigned char value [4];

value[3] = (byte) (a & (0xFF));
value[2] = (byte) ((a >> 8) & 0xFF);
value[1] = (byte) ((a >> 16) & 0xFF);
value[0] = (byte) ((a >> 24) & 0xFF);
//convert int values to bytes by placing them in a char buffer

for(i=0;i<4;i++){
 printf("%d",value[i]);
 printf(", ");
 }
printf("\n");
}

例如,使用这个值,程序打印“5, 99, 5, 99”,而它应该打印“0, 0, 5, 99”。感谢您的帮助。

最佳答案

几乎可以肯定,“动态 C”是一个具有 16 位 int 的实现,这对于 C 来说是完全“合法的”。如果 int 是16 位,超过 16 位的任何移位都是模 16,因此后两个移位重复前两个。

关于在 C 中将一个 int 转换为一个 4 字节的 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11439700/

相关文章:

c - Linux 内核模块编程 - 无法使用 CONFIG_CC_STACKPROTECTOR_REGULAR : -fstack-protector not supported by compiler

c++ - 是否可以简单地序列化 C++ 对象

从嵌套函数调用结构指针

c - c中有符号和无符号字符之间的区别

c - 将精确的字符串与 strstr 匹配

将文件中的一组字符转换为 int

Cuda 共享内存数组变量

javascript - 我在 for 循环内得到相同的对象以进行 Angular 修改

actionscript-3 - 使用 adobe flash 将外部 swf 加载到 bytearray

java - Java中如何高效地将二进制字符串转换为二进制字节数组?