当前位置: 首页 > 知识库问答 >
问题:

旋转4位整数

彭琛
2023-03-14

我有一个int < code > 000000000000000000000000001101 ,它代表十进制的13。我试图通过将32位整数视为4位整数来循环旋转这些位,因为如果旋转整数,值会变得非常大。在上面的例子中,右旋转2后,我想要的答案是< code > 00000000000000000000000000111 ,它是以10为基数的7。

非常感谢对此的任何帮助。

共有2个答案

江飞白
2023-03-14

要将低位4位向右旋转n,其中n为1、2或3:

((x >> n) | (x << (4-n))) & 0xF;

第一部分将最左边的 4-n 位向右移动;第二部分将最右边的 n 位向左移动。然后你他们一起,并使用

齐英耀
2023-03-14

试试这个:

x=(x

这只是通过移位和掩码来模拟旋转。我不认为你能做什么更好的事情,除了制作一个查找表(实际上可能不会更好);CPU没有本地处理nybble的操作码。

 类似资料:
  • 假设我使用大小为8的字符数组来表示图像的碰撞掩码。字符的每一位代表一个像素。实际上,对于64x64矩阵,我将使用长[64]阵列。 因此,框将显示为: 45度的示例输出应该是这样的,尽管旋转可以是任何角度。这个形状对于45度旋转可能不准确,因为我是用手做的。 另一个例子是向右旋转10度?这些值可能是错误的,因为从数学上讲,我不知道它将如何精确旋转,但我认为可以安全地假设,如果每个位的覆盖率超过旧形状

  • 所以我在图像视图上做了一些旋转和翻译。据我所知,图像视图并没有真正在任何一个位置之后,你必须在动画完成后将其实际移动到那里。所以我尝试移动的图像视图称为标记,它设置在其原始位置和有它的起始位置。移动或翻译后,我调用来处理移动或旋转。这似乎有一半的时间完成了预期的结果...不确定我做错了什么,但它与我想要的方式不一致。

  • 我尝试使用iTextSharp创建一个多页pdf文档。我有一个包含自身方向(横向或纵向)的对象。当第一个对象包含需要横向模式的信息时,我用< code > Document doc = new Document(PageSize。A4.Rotate(),10f,10f,10f,0f)。这工作得很好,直到下一个元素是肖像模式!如果一个元素处于纵向模式,我再次设置页面大小:< code>doc。Set

  • 我正在构建一个应用程序,它依赖于显示从相机拍摄的许多位图图像。我希望所有图像都以90度(纵向)的方向显示,我知道如何使用每个图像提供的EXIF信息来实现这一点。在拍摄图像后立即旋转图像的位图以满足我的需要,然后将其发送到我的服务器,这对我来说是一个更好的主意,还是应该在不旋转图像的情况下将图像发送到我的服务器,然后每当我下拉图像时,使用图像附带的EXIF旋转来旋转我正在显示的图像视图?我需要一个高

  • 问题内容: 给定一个十进制整数(例如65),如何反转Python中的基础位?即。以下操作: 看来该任务可以分为三个步骤: 将十进制整数转换为二进制表示形式 反转位 转换回十进制 步骤#2和3似乎很简单(这个相关的步骤#2 SO问题),但我卡在步骤#1。步骤#1的问题是使用填充零来检索完整的十进制表示形式(即65 = 01000001,而不是1000001)。 我到处搜寻,但似乎找不到任何东西。 问

  • 我正在尝试建立一个简单的“飞鸟”游戏,我需要鸟的图像倾斜,上升时指向上方,反之亦然。然而,当旋转我的图像时,它会在稍微下降或轻触屏幕后部分或完全从屏幕上消失。谁能告诉我怎么解决这个问题吗?