RISC-V 中的旋转位

2024-01-26

嘿,我对 RISC-V 还算陌生。

我的练习题之一是:

将 0x0000000000000123 的值右移 4 位。预期结果为 0x3000000000000012,即所有十六进制数字向右移动一位,而最右边的一位移动到前面*

到目前为止,我了解了一些关于逻辑运算的知识:andi, or, and xori。在我之前的练习中我学到了add, addi, sub, slli, srli, srai.

我从以下开始:

addi x6, 0x, 0x123

然而,我被困在这里了。我的教科书并没有真正正确地描述事物,所以非常感谢任何帮助!


这就是我最终所做的:

addi x30, x0, 0x123
andi x29, x30, 0x00f //masking all, but the right most hexadecimal digit
slli x6, x29, 60 //shifting this digit all the way to the left (rotating)
srli x7, x30, 4 //shifting the original value 4 bits right
add x5, x6, x7 //adding the two regs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RISC-V 中的旋转位 的相关文章

  • 如何使用按位运算符交错 2 个布尔值?

    假设我有两个 4 位值 ABCD and abcd 如何交错它 所以它变成AaBbCcDd 使用按位运算符 伪 C 语言示例 nibble a 0b1001 nibble b 0b1100 char c foo a b print bits
  • 向零舍入到最接近的 0x50 的简短按位方法?

    我正在尝试修补一个旧的 8 位汇编程序例程 它恰好是 M6800 但这并不是真正特定于机器的 以获取 16 位值并向下舍入到最接近的 0x50 dec 80 倍数 当前代码截断为最接近的32只需做一件事AND 0xE0到低字节 这当然会将低
  • 将零填充到二进制数中特定位置的命令?

    我需要将零填充到二进制数的特定位置 循环二进制数的数组形式 例如dec2bin 43 添加零并调整大小听起来像是轮子的重新发明 如何在Matlab中有效地将零填充到二进制数 Looping positions 1 3 6 x de2bi 4
  • 如何找到第一个设置位的索引

    是否有按位解决方案来查找仅设置一个位的掩码中第一个设置位的索引 例如对于 8 则为 3 对于 16 gt 4 依此类推 请不要循环 我能想到的最佳解决方案是创建位到索引的映射 function firstBit x return Math
  • 有条件地使用按位运算符

    条件运算符如何使用按位运算符表示 这是一个家庭作业问题 我必须仅使用按位运算来实现条件运算符 那就很简单了 如果if允许使用语句 但它必须是严格的按位运算符 仅运营商 gt gt and lt lt 可以使用 不if可以使用语句或循环 该函
  • 按位移位(左移或右移)有什么作用以及它的用途是什么?

    我见过运营商 gt gt and lt lt 在我看过的各种代码中 我真正理解的都不是 但我只是想知道它们实际上做了什么以及它们的一些实际用途是什么 如果班次就像x 2 and x 2 与实际使用的真正区别是什么 and 运营商 有性能差异
  • 无需使用abs函数或if语句即可获取绝对值

    我在想如何在不使用的情况下获得整数的绝对值if声明也不abs 起初我使用的是左移位 lt lt 试图将负号移出范围 然后将位右移回原来的位置 但不幸的是它对我不起作用 请让我知道为什么它不起作用以及其他替代方法 From 位摆弄黑客 htt
  • 十六进制数的按位异或

    我们如何在 Python 中对十六进制数进行异或 例如 我想要异或 ABCD and 12EF 答案应该是 B922 我使用了下面的代码 但它给出了错误的结果 xor two strings of different lengths def
  • Python 相当于 Bit Twiddling Hacks 中的 C 代码?

    我有一个位计数方法 我正在尝试尽可能快地实现 我想尝试下面的算法位摆弄黑客 http graphics stanford edu seander bithacks html CountBitsSetParallel 但我不知道 C 什么是
  • 如何看待Python的负数按位运算?

    我发现很难思考 Python 和 Python3 的无限精度负数和按位运算 它不是 32 位或 64 位 这1左边的 s 可以被认为是 无穷多个 它不是很明确 这就是为什么有时很难思考它是如何运作的 似乎一种可行的方法是 总是让它更多 例如
  • 这个按位运算如何检查 2 的幂?

    我正在看一些应该很简单的代码 但我的数学在这里严重失败 下面是一个使用以下条件检查数字是否为 2 的幂的条件 if num 1 num num 1 make num pow of 2 我的问题是 如何在 num 和 num 1 之间使用按位
  • 异或交换可以扩展到两个以上的变量吗?

    我一直在尝试将异或交换扩展到两个以上的变量 例如n变量 但我没有得到比这更好的地方3 n 1 对于两个整型变量x1 and x2你可以像这样交换它们 swap x1 x2 x1 x1 x2 x2 x1 x2 x1 x1 x2 所以 假设你有
  • 以 O(1) 计算汉明权重 [重复]

    这个问题在这里已经有答案了 在二进制表示中 汉明权重是 1 的数量 我偶然发现了网络并找到了一个 O 1 的答案 v v v gt gt 1 0x55555555 v v 0x33333333 v gt gt 2 0x33333333 in
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我
  • 如何在 LLVM IR 中使用 RISC-V Vector (RVV) 指令?

    In 这个演示文稿 https llvm org devmtg 2019 04 slides TechTalk Kruppe Espasa RISC V Vectors and LLVM pdfKruppe 和 Espasa 概述了 RIS
  • 按位运算符简单地翻转整数中的所有位?

    我必须翻转整数的二进制表示形式中的所有位 鉴于 10101 输出应该是 01010 当与整数一起使用时 完成此操作的按位运算符是什么 例如 如果我正在编写类似的方法int flipBits int n 什么会进入身体 我只需要翻转数字中已经
  • 为什么 n 按位和 -n 总是返回最右边的位(最后一位)

    这是Python代码片段 1 1 1 2 2 2 3 3 1 看来任何n n总是返回最右边 最后 位 我真的不知道为什么 有人可以帮助我理解这一点吗 这是由于负数以二进制表示的方式 称为二进制补码表示 创建某个数字 n 的补码 换句话说 创
  • 不使用“-”运算符将两个数字相减

    我尝试使用以下代码 但我不明白为什么它给了我错误的答案 我正在计算 2 的补码并添加另一个数字 include
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292

随机推荐

  • 在 Mac 上使用 Python 控制浏览器

    我正在寻找一种使用 Python 以编程方式控制 Mac 上的浏览 器 即 Firefox 或 Safari 或 Chrome iumor Opera 但不是 IE 的方法 我需要的操作包括以下链接 检查页面中是否存在元素以及提交表单 您会
  • 如果用户在卸载后立即再次安装应用程序,GCM 是否会删除旧的注册 ID?

    我了解到 当 GCM 无法发送下一个推送通知时 GCM 会将注册 ID 标记为删除 但就我而言 我的用户发生了以下情况 Scenario 1 我的用户安装了该应用程序 并且他的设备已向 GCM 注册 2 同一用户立即卸载并再次安装该应用程序
  • Django:在模板中显示当前区域设置

    我需要将当前区域设置嵌入到 Django 模板的输出中 准确地说 作为 URL 的一部分 我知道我可以访问当前的language as LANGUAGE CODE if I load i18n 但有没有类似的方法来访问当前的locale 我
  • 如何测试角度装饰器功能

    我在 Angular 中有一个装饰器 它将扩展 log 服务的功能 我想测试它 但我没有找到实现此目的的方法 这是我的装饰器的存根 angular module myApp config function provide provide d
  • 如何在 PHP 中删除字符串的一部分? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何删除字符串的一部分 示例字符串 REGISTER 11223344 here 我怎样才能删除 11223344 从上面的示例字符串 如
  • 使用 Retrofit 和 Realm 纠正 RxJava 中的流程

    我正在结合 RxJava 和 Retrofit 来实现网络 API 并使用 Realm 作为数据库 我几乎可以正常工作 但我想知道这是否是正确的方法和事件流程 所以 这里是RetrofitApiManager public class Re
  • (xs : Vect n elem) -> Vect (n * 2) elem

    这本书使用 Idris 进行类型驱动开发 https www manning com books type driven development with idris提出这个练习 定义一个适合签名的可能方法 two xs Vect n el
  • 如何在没有嵌入式 tomcat 的情况下启动 Spring Boot 应用程序?

    我有一个使用 jhipster 生成的 Spring Boot 应用程序 它工作正常 但是 我还需要为一些后台批处理作业创建第二个应用程序 并且该应用程序使用第一个应用程序的大部分 Spring 服务 我所做的是创建第二个主类 它启动一个
  • 在 Visual Studio 中使用 Catch2 进行单元测试的最佳实践

    我是 C 单元测试的新手 想获得一些关于这方面的建议 我使用 Visual Studio 2019 进行开发 选择 Catch2 作为我的测试库 我还安装了 Catch2 的测试适配器 我在 GitHub 上阅读了 Catch2 和 Cat
  • 在 Cordova ios 4.0.0+ 中使用 Stripe Checkout

    我一直在尝试让 Stripe checkout 与 Cordova iOs 4 2 0 一起使用 但没有成功 适用的最后一个 Cordova iOs 版本是 3 9 2 为了测试 我制作了一个空的 hello world cordova 应
  • Google API:“invalid_grant”,但代码没有改变

    我在 Google API 身份验证方面遇到以下问题 PHP 致命错误 未捕获异常 Google Auth Exception 消息 刷新 OAuth2 令牌时出错 消息 错误 无效授权 在 home bot bot vendor goog
  • 混合 PCM 音频样本

    我有一个关于混合多个 PCM 样本的简单问题 我读到混合多个音频 PCM 样本的最佳方法是取每帧样本的平均值 因此 如果我在除以 5 之前将 5 个 16 位样本相加 显然很有可能它的值会大于 16 位 Short 所能容纳的值 因此 当将
  • 路由在 kubernetes 中无法使用 calico 工作

    I have kubernetes v1 6 0 由 kubeadm v1 6 1 设置 官方设置的 calicoyaml http docs projectcalico org v2 1 getting started kubernete
  • 如何在没有“未经检查”警告的情况下转换为(已知)泛型类型?

    我有这两个接口 public interface Event default void dispatch EventBus getInstance dispatch this public interface EventListener
  • NERDTree 自动加载特定目录

    我在 Windows 中使用 gvim 默认情况下 nerdtree 默认加载 C 驱动器 我想将其更改为 E 驱动器 如何实现这一点 每当我尝试使用 NERDTree 命令启动 NERDTree 时 都会收到此错误E492 Not an
  • 在内存中存储张量流模型

    我正在编写的程序涉及在运行时在模型之间进行切换 我当前正在使用 Saver 从磁盘保存 加载模型 如下所示 https www tensorflow org api docs python state ops saving and rest
  • VS Xamarin无法生成IPA文件

    我曾经将配置设置为 Release iPhone Remote Device 但是远程设备不再显示 只剩下本地设备 有谁知道有相关的设置吗 多谢 更新到 Visual Studio 16 11 3 远程设备 选项已恢复 看发行说明 http
  • 谷歌地图 API 风格的地图与卫星水

    我正在使用谷歌地图 API V3 创建一个样式化的地图 其中我使用自定义颜色 我想知道是否可以在使用陆地上的自定义样式的同时使用水域的卫星图像 IE 我希望水是卫星图像 而土地是自定义的纯色 现在我可以为土地和水提供自定义颜色 但我想知道是
  • 如何限制子类修改抽象类中方法的范围?

    如何限制抽象类的实现类将方法的范围从 protected 修改为 public 例如 假设我有一个抽象类 package com rao test public abstract class AbstractTEClass protecte
  • RISC-V 中的旋转位

    嘿 我对 RISC V 还算陌生 我的练习题之一是 将 0x0000000000000123 的值右移 4 位 预期结果为 0x3000000000000012 即所有十六进制数字向右移动一位 而最右边的一位移动到前面 到目前为止 我了解了