gpt4 book ai didi

c++ - 如何访问整数指针中的每个字节?

转载 作者:太空宇宙 更新时间:2023-11-04 16:29:54 26 4
gpt4 key购买 nike

我知道如果整数被分解而不是作为一个整体来计算,那么单个字节的总和将产生不正确的结果。但是,出于好奇,我想检查单个字节并生成。我不确定检查整数指针中的每个字节是否正确:

#include <iostream>
int main(int argc, char *argv[])
{
using namespace std;

int *num = new int;
*num = 123456789;
cout << "Num: " << *num << '\n';
char* numchar_ptr = reinterpret_cast<char*> (num);
for (int i = 0; i < 4; ++i)
{
cout << "number char: " << i << ' ' << (short) *(numchar_ptr+i) << '\n';
*(numchar_ptr+i) = i
}
cout << "New num: " << *num << '\n';
delete num;

return 0;
}

根据循环,整数中的字节将是:0 1 2 3等于二进制的 00000000 00000001 00000010 00000011 和十进制的 66051但是我得到的结果“New num”是 50462976。为什么?

最佳答案

仔细阅读 endianness 上的维基百科页面

关于c++ - 如何访问整数指针中的每个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324399/

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