gpt4 book ai didi

bit-manipulation - 交换一个字节中的一对位

转载 作者:行者123 更新时间:2023-12-04 02:39:16 24 4
gpt4 key购买 nike

我有一个任意 8 位二进制 数字,例如,11101101
我必须交换所有的位,如:

交换前:11-10-11-01交换后:11-01-11-10
我在面试中被问到这个问题!

最佳答案

在伪代码中:

x = ((x & 0b10101010) >> 1) | ((x & 0b01010101) << 1)

它的工作原理是分别处理每个位对的低位和高位,然后组合结果:
  • 表达式 x & 0b10101010从每一对中提取高位,然后 >> 1将其移至低位位置。
  • 类似的表达式 (x & 0b01010101) << 1从每一对中提取低位并将其移至高位位置。
  • 然后使用按位或将这两个部分组合起来。

  • 由于并非所有语言都允许您直接编写二进制文字,因此您可以将它们编写为例如十六进制:

    二进制 十六进制 十进制
    0b10101010 0xaa 170
    0b01010101 0x55 85

    关于bit-manipulation - 交换一个字节中的一对位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3758402/

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