gpt4 book ai didi

c++ - 使用指针在长无符号变量中选择数字

转载 作者:行者123 更新时间:2023-11-28 04:06:56 25 4
gpt4 key购买 nike

我需要添加两个从变量中选择的两个数字,即 0X11223344,我希望我的指针在数组中间选择 22。我该怎么做

最佳答案

您可以使用移位和模运算来获取值

int main(){
return (0X11223344 >> 16) % 256;
}

程序返回 34 == 0x22

右移 4 会删除 1 位数字。右移 16 会删除 4 位数字。对 16 取模会删除除一位以外的所有数字。模数 16*16= 256 会删除除 2 位以外的所有数字。

也可以通过指针操作获取值:

int main() {
int endianness = 2;
int a = 0x11223344;
char *b = ((char *) &a) + endianness;
return *b;
}

endianess 的值是实现定义的。在一个小字节序的系统上它是 2

|01 02 03 04|  memory address
-------------
|44 33 22 11| 4 byte int with address 01 and value 0x11223344
| | |22| | 1 byte char with address 03 and value 0x22

在大字节序的系统上它是 1

|01 02 03 04|  memory address
-------------
|11 22 33 44| 4 byte int with address 01 and value 0x11223344
| |22| | | 1 byte char with address 02 and value 0x22

关于c++ - 使用指针在长无符号变量中选择数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58572827/

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