代码之家  ›  专栏  ›  技术社区  ›  ScarletsFeed

给定两个无符号字符变量,将A的最低4位指定为B的最高4位,将A的最高4位指定为B的最低4位[闭合]

  •  -4
  • ScarletsFeed  · 技术社区  · 8 年前

    如果这是重复的,请原谅,但是我需要有人向我解释如何完成以下操作(C中的按位屏蔽/移位让我困惑)

    据我所知,我需要将前4位与后4位进行切换,但我不确定如何进行切换。

    这是一道来自期中考试的问题,已发布用于复习/学习

    问题:

    我声明了两个无符号char变量a和b。假设a已经初始化。我想给b赋值,这样a的最低四位是b的最高四位,a的最高四位是b的最低四位。

    编写一行C代码来实现这一点。

    如果可以的话,向我解释一下,这样我就能更好地理解发生了什么,谢谢。

    1 回复  |  直到 8 年前
        1
  •  1
  •   chqrlie    8 年前

    遵循以下步骤:

    • 提取的4个低位 a 具有 a & 0x0F
    • 将其向左移动4 << 操作人员
    • 提取的4个高位 一 具有 a & 0xF0
    • 将其向右移动4,使其处于低位 >>
    • 将这些结果与 | 。
    • 添加一些括号以确保正确的优先级