c - 请帮助我在 C 中使用 memcpy()

标签 c string hex memcpy short

我有以下代码:

void main()
{
    char tmp[3]= "AB";
    short k;
    memcpy(&k,tmp,2);
    printf("%x\n", k);
}

在 ASCII 中,字符“A”的十六进制值为 41,字符“B”的十六进制值为 42。为什么这个程序的结果是 4241?我认为正确的结果是4142。

最佳答案

您显然是在“小端”机器上运行它,其中最低有效字节排在第一位。请参阅http://en.wikipedia.org/wiki/Endianness .

关于c - 请帮助我在 C 中使用 memcpy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8220362/

相关文章:

c - C中的无符号十六进制常量?

c++ - 头文件在整个程序中只包含一次?

c - g_array_sort() 调用但不排序

c - 如何打印这个系列?(1\n 2 3\n 4 5 6\n 7 8 9 10 ... ... ...)

javascript - 我的弦有问题。弹出错误提示 "unexpected string"

javascript - 解码或转义字符串中的十六进制代码数字

c - 这种字符串匹配的最佳方式是什么?

c - 没有新数组的字符串反转

c - 如何在WIN32 API中使用trim()文本LPWSTR类型

算法题: Need to dynamically INCREMENT from 00FF00 to FF0000 over TIME, C#/Java