gpt4 book ai didi

c++ - 给定 2 个 16 位整数,我可以交错这些位以形成一个 32 位整数吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:34 25 4
gpt4 key购买 nike

处理此问题的正确方法是什么?假设我有 ABCD 和 abcd,输出位应该类似于 AaBbCcDd。

unsigned int JoinBits(unsigned short a, unsigned short b) { }

最佳答案

#include <stdint.h>

uint32_t JoinBits(uint16_t a, uint16_t b) {
uint32_t result = 0;
for(int8_t ii = 15; ii >= 0; ii--){
result |= (a >> ii) & 1;
result <<= 1;
result |= (b >> ii) & 1;
if(ii != 0){
result <<= 1;
}
}
return result;
}

还在 ideone 上进行了测试:http://ideone.com/lXTqB .

关于c++ - 给定 2 个 16 位整数,我可以交错这些位以形成一个 32 位整数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431522/

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