gpt4 book ai didi

整数表示的字符数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:36 24 4
gpt4 key购买 nike

我正在阅读有关C 中的指针 的帖子 here>>> ,还有一个例子:

main() {
...
char name[] = "Bill";
int *q;
...
q = name;
printf("%d\n", *q);
...

这给了我下一个结果:

$ ./pointers_explained 
1819044162

所以问题是关于作者的下一个解释:

(to see how, line up the binary representation of the ascii values for those 4 characters, and then run the 32 bits together, and convert that resultant binary number as an integer.)

“Bill”的二进制文件将是:

  • B:01000010
  • :01101001
  • l:01101100
  • l:01101100

(来自 ASCII 二进制表 here>>> )

我无法得到的是:

and then run the 32 bits together, and convert that resultant binary number as an integer

那么 - 如何将这个“Bill”的二进制转换为十进制(或任何其他)整数“1819044162”?

最佳答案

在ascii码中,“Bill”是

B: 0x42
i: 0x69
l: 0x6c
l: 0x6c

1819044162 在十六进制模式下是 0x6c6c6942,这是因为 endianness

在内存中,“Bill”存储为:

     B   i   l   l
name 42 69 6c 6c

但如果是小字节序,从地址name读取一个4字节整数,则向后读取,结果0x6c6c6942,即1819044162。

如果系统是 big endian,结果将是 0x42696c6c

关于整数表示的字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37371938/

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