gpt4 book ai didi

c - 指向无符号整数的无符号字符

转载 作者:行者123 更新时间:2023-12-04 09:41:04 24 4
gpt4 key购买 nike

我不明白为什么下面的代码打印出 7 2 3 0 我希望它打印出 1 9 7 1。任何人都可以解释为什么它正在打印 7230 吗?:

unsigned int e = 197127; 
unsigned char *f = (char *) &e;

printf("%ld\n", sizeof(e));
printf("%d ", *f);
f++;
printf("%d ", *f);
f++;
printf("%d ", *f);
f++;
printf("%d\n", *f);

最佳答案

计算机使用二进制而不是十进制,因此 197127 存储为二进制数而不是一系列单独的十进制数

19712710 = 0003020716 = 0011 0000 0010 0000 01112

假设您的系统使用 little endian , 0x00030207 将作为 0x07 0x02 0x03 0x00 存储在内存中,当您打印出每个字节时,它会按预期打印为 (7 2 3 0)

关于c - 指向无符号整数的无符号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19138767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com