gpt4 book ai didi

c - 如何用 C 中的最高有效位 (MSB) 替换最低有效位 (LSB)

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

我刚开始进行 C 语言编程,但在用最高有效位 (MSB) 替换最低有效位 (LSB) 时遇到了问题。

比如第一个key(key是32位)是11110000,转换后就是11100001,然后是11000011,然后是10000111、00001111、00011110等等。

这是我试过的代码:

for (int i = 0; i < 5; i++)
{
uint32_t a = (1 << 31) & key;

key = (key << 1);
key &= ~(1 << 1);
key |= (a << 1);
}

最佳答案

假设 key 也是 uint32_t 类型,你可以试试这个

  for (int i = 0; i < 5; i++)
{
uint32_t a = key >> 31; //convert MSB to LSB
key <<= 1; // shift key 1 bit to the left, (discarding current MSB) making space for new LSB
key |= a; // append LSB

}

关于c - 如何用 C 中的最高有效位 (MSB) 替换最低有效位 (LSB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149462/

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