交换每两个字节中的每两个位

2023年 9月 12日 40.6k 0

交换每两个字节中的每两个位

在本文中,我们将讨论交换给定数字中的每个交替位的代码解决方案,并返回结果数字。我们将使用位操作的概念来解决这个问题,以在不使用任何循环的情况下以恒定时间解决问题。

Problem statement − We are given a number n, we have to swap the pair of bits that are adjacent to each other.

In other words, we have to swap every odd placed bit with its adjacent even placed bit.

Constrain: While solving the problem, we have to keep In mind that we cannot use a loop for this problem, we have to execute our code in O(1) time complexity only.

Example

Input − n = 10011110

输出 - 在交换偶数位置位和奇数位置位之后,

the binary number obtained is: 01101101

Input − n = 10011110

输出 - 在交换偶数位置位和奇数位置位之后,

the binary number obtained is: 01101101

Explanation −

让我们考虑前面的例子以更好地理解。

n = 10011110
Even position bits in n are E – 1 x 0 x 1 x 1 x
Odd position bits in n are O – x 0 x 1 x 1 x 0

登录后复制

For the result, we want the even position bits at the odd position and vice-versa

For even position bits at odd position,

We need to right shift the even position by one position.

因此,对于偶数位置的位,我们只需将 E >> 1 来获取所需的位置。

Similarly, we have to left shift the odd position bits by one position to get the desired position of odd bits.

所以,对于奇数位,我们只需要将O > 1

  • O > 1 | O > 1)|(O

  • 相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论