对于无符号数和有符号数的补码,哪些算术运算是相同的?

2023-11-23

我正在设计一个简单的玩具指令集和随附的模拟器,并且正在尝试找出支持哪些指令。在算术方面,我目前有无符号加法、减法、乘法和除法。但是,我似乎无法找到以下问题的明确答案:哪些算术运算符需要签名版本,哪些算术运算符的无符号和补码签名版本等效?

例如,1111 的补码等于 -1。如果你加 1 并假装它是一个无符号数,你会得到 0000,即使将其视为 -1,这也是正确的。然而,这对所有数字都适用吗?那么其他三个运算(减法、乘法、除法)呢?


加法、减法和乘法是相同的,前提是:

  1. 您的输入和输出大小相同
  2. Your behaviour on overflow is wraparound modulo 2n

分工不同。

许多指令集提供乘法运算,其中输出大于输入,同样,这些对于有符号和无符号是不同的。

此外,如果您用 C 语言编写模拟器,则需要注意该语言的一些错误功能。

  1. Overflow of signed arithmetic in C is undefined behaviour. To get reliable modulo 2n behaviour arithmetic must be performed using unsigned types.
  2. C 会将小于 int 的类型提升为 int。需要非常小心地避免此类促销(在计算开始时添加 0u 或乘以 1u 是一种方法)。
  3. 从无符号类型到有符号类型的转换是实现定义的,我见过的实现做了明智的事情,但可能有一些没有。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于无符号数和有符号数的补码,哪些算术运算是相同的? 的相关文章

  • 在 R 中将因子矩阵转换为二进制(指标)矩阵的最有效方法

    我可以想到几种方法来转换这种类型的矩阵 数据框 dat data frame x1 rep c a b 100 x2 rep c x y 100 head dat x1 x2 1 a x 2 b y 3 a x 4 b y 5 a x 6
  • 如何将png二进制数据放入img标签中并将其显示为图像?

    我正在用这个 ajax type GET url template bump1 purse png datatype image png success function data var reader new FileReader rea
  • 如何创建二进制补丁?

    为二进制文件制作补丁的最佳方法是什么 我希望用户能够简单地应用 一个简单的patch应用程序会很好 在文件上运行 diff 只是给出Binary files differ 查看bsdiff and bspatch website http
  • 在Windows中比较2个二进制文件的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个工具来比较两个二进制文件 文件相当大 我在互联网上找到的一些免费软件或试用工具不方便用于大文件
  • 奇怪的 0x0D 被添加到我的二进制文件中

    我有这个奇怪的问题 我将 16 个字符写入一个二进制文件 然后写入 3 个整数 但是当我使用某些二进制文件查看器打开文件时 我看到添加了一个额外的字节 等于0x0D 这是我的代码 for i 0 i lt 16 i if i lt strl
  • 如何使用 hibernate JPA 2 以二进制形式存储 uuid

    我有一个关于通过休眠持久化 JPA2 在数据库中以二进制形式存储字符串uuid的问题 我现在正在使用这段代码 private UUID id Id Type type uuid char GeneratedValue generator s
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • 互联网 RFC 数据包图中预期的位(不是字节)顺序是哪个

    我正在我的家庭有线网络上解析 ICMPv6 数据报 但在特定 RFC 中找不到对位排序约定的明确提及 多字节字段是网络顺序的 但是字节内的位又如何呢 机器是按字节寻址的 但网络硬件对位进行序列化 在图表中 8 位字段 左侧 的一位最终位于无
  • 按位运算符简单地翻转整数中的所有位?

    我必须翻转整数的二进制表示形式中的所有位 鉴于 10101 输出应该是 01010 当与整数一起使用时 完成此操作的按位运算符是什么 例如 如果我正在编写类似的方法int flipBits int n 什么会进入身体 我只需要翻转数字中已经
  • 带有二进制数据的 Bash echo 命令?

    有人可以解释一下为什么这个脚本有时只返回十六进制字符串表示形式的 15 个字节吗 for i in 1 10 do API IV openssl rand 16 API IV HEX echo n API IV od vt x1 w16 a
  • 计算二进制的可能性总数?

    如何计算二进制在一个字节中可以拥有的可能性总数 00000000通过11111111 num of possibilities The total number is 2 to the power of the number of bits
  • 使用 .NET 将二进制转换器转换为十进制

    我已经开始掌握一些编程基础知识 但我仍然很新并且缺乏经验 我正在编写的新程序遇到问题 我想要一个程序 将 8 位二进制数放入文本框中 按下按钮 然后显示二进制数的十进制值 下面是我尝试过的代码 Public Class Form1 Priv
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 查找所有n位相邻数字为1的n位二进制数[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 让我用一个例子来解释一下 如果n 4
  • Haskell 二进制解析

    我一直在尝试在 haskell 中实现一个协议解析器 而且我对这门语言还很陌生 特别是当涉及到 monad 时 我一直在使用binary 0 5 0 2 并描述了协议的标头和所有有效负载 我想要解析的消息如下所示 header payloa
  • 二元除法问题:互联网上的坏例子或者我错过了什么?

    我想创建一个 16 位 CRC 实际上我已经完全准备好了 所以几个小时前我测试了它 但没有正常工作 但我发现互联网上的例子在涉及二进制除法时可能是错误的 我只链接其中两个 来自很多 http www ross net crc downloa
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • 如何判断一个int数是奇数还是偶数? (二进制方式)

    我想利用基础知识来提高代码效率 我知道在二进制系统中 当数字的最后一位是 1 时 这是奇数 0 是偶数 在python中如何用这种方式判断一个int数 python 是否提供了任何内置方法来执行此操作 和 1 000010100100010
  • 如何将字符串转换为二进制?

    我需要一种方法来获取 python 中字符串的二进制表示形式 例如 st hello world toBinary st 是否有一个模块可以以某种巧妙的方式执行此操作 像这样的东西吗 gt gt gt st hello world gt g
  • PHP:将字符串分成 8 个块,我该怎么做?

    我基本上有二进制 假设它的长度是300 我如何将它分割 就像使用爆炸一样 成 8 位块 我查看了 chunk split 但它似乎只有一个 end 参数 而不是将其放入数组的选项 或者它可以插入数组吗 末尾 8 位数字可以低于 8 如果有人

随机推荐

  • 具有其他模型值的下拉菜单

    我有属于系列的产品 集合只是一个名字 产品有一个collection id 在我用于创建和编辑产品的 form 视图中 我希望有一个包含所有集合名称的下拉菜单 问题 似乎没有附属于 form for 的选择方法 我正在尝试使用 选择 方法
  • 在这种情况下,扩展原型链如何提高性能?

    我长期以来一直有一个深刻的假设prototype chains导致属性访问器的性能下降 我试图解释这一点隐藏 getter 或添加到 proto 对象中当一个快速我整理的基准结果与我的预期完全相反 这里发生了什么 我是否遗漏了一些明显的东西
  • Grails RemoteFunction 参数语法

    我正在尝试将几个参数传递给 grails 中的 RemoteFunction 但我很难正确格式化它 我想传递页面上的一段数据的值加上我刚刚跳出的文本框的值 所以在我的 onblur 中我有一些类似的内容 onblur remoteFunct
  • 蓝牙和delphi,怎么样?

    我想使用蓝牙将文件发送到设备 手机 没什么花哨的 但我不知道应该从哪里开始寻找司机 也许你们中的一个人以前使用过蓝牙 可以给我一个起点 我在 Indy 中添加了一些蓝牙支持 因为你只能 通过套接字读取 写入蓝牙 使用 Windows 套接字
  • MongoDB:更新一个字段上的每个文档

    我有一个集合名为foo假设地 每个实例foo有一个名为 lastLookedAt 的字段 它是自纪元以来的 UNIX 时间戳 我希望能够通过 MongoDB 客户端并将所有现有文档 大约 20 000 个 的时间戳设置为当前时间戳 处理这个
  • 访问 Django 模板中的 Javascript 变量

    有什么办法可以访问吗javascript变量在Django模板tags 我可以做这样的事情吗 if javascriptvar 0 do this else do this endif 不 Django 模板是在服务器端编译的 然后它被发送
  • 更改数据库/添加文件/变量文件名?

    我想将文件 文件组添加到现有数据库 但我需要从变量获取路径 因为当此脚本完成时它会有所不同 当我在 SQL Management Studio 2008 R2 中检查脚本时 它返回一个错误FILENAME Path 我该如何使用该变量 脚本
  • 如何判断 UILabel 何时被截断和/或其换行位置将发生变化

    我有一个多线UILabel numberOfLines 0 它的宽度可以在运行时改变 有时这会导致截断和 或重新包装 一些例子最好地说明了这一点 示例 1 宽度的减小导致不同的断线点 示例2 宽度减少导致截断 示例 3 宽度的减小导致截断和
  • 缺少节点的 xpath

    我有以下 xml
  • 如何根据方向元数据旋转 JPEG 图像?

    我有一些服务器代码在上传图像时生成缩略图 问题是 当拍摄图像并旋转相机 设备时 缩略图也会旋转 即使全尺寸图像本身在任何图像查看软件中都以正确的方向显示 只有 jpg 才会出现这种情况 使用 OSX 上的预览 我可以看到 jpg 中嵌入了方
  • 我可以将 Flex 组件属性绑定到函数吗?

    我想设置enabled按钮上的属性基于具有一个或多个参数的函数的返回值 我怎样才能做到这一点 private function isUserAllowed userName Boolean Boolean if userName Tom r
  • 使用 Graph API 将图像从 .NET 发布到 Facebook 墙

    我正在使用 Facebook 的 Javascript API 开发一个应用程序 该应用程序需要能够将图像发布到用户墙上 据我所知 应用程序的这一部分需要位于服务器端 因为它需要将图像数据发布为 多部分 表单数据 注意 这不是简单的 pos
  • java.lang.NoSuchMethodException:类“class java.lang.String”上的未知属性“”

    我想将对象列表传递给 jasper 报告中的列表组件 我正在使用 list1 的数据源表达式是新的net sf jasperreports engine data JRBeanCollectionDataSource参数类是java uti
  • Glassfish 服务器适配器未显示在 Eclipse 的列表中

    我成功安装了 Glassfish Tools for Kepler 但是 除了 Apache Basic JBoss 和 ObjectWeb 之外 我在服务器向导中没有看到 GlassFish 的条目 File gt New gt Othe
  • 如何在 NumPy 中将 CSV 数据读入记录数组?

    有没有直接的方法将CSV文件的内容导入到记录数组中 就像R的方式一样read table read delim and read csv 将数据导入 R 数据框 或者我应该使用csv reader 然后申请numpy core record
  • 二进制减法 - Python

    我想做一个二进制计算器 但减法部分有问题 这是我的代码 我尝试根据我在该网站上找到的代码进行改编 maxlen max len s1 len s2 s1 s1 zfill maxlen s2 s2 zfill maxlen result c
  • 在 Twitter Bootstrap CSS 中覆盖“背景:透明!重要”

    有一个可以绘图的应用程序divs 以背景颜色作为其图形 这些 div 在屏幕上看起来很好 但是div打印为 PDF 时 s 消失 将该问题追溯到 Twitter Bootstrap CSS 当 Bootstrap CSS 不存在时 div
  • doFilter 没有被调用

    你能帮忙检查一下为什么 doFilter 没有被调用吗 web xml
  • 按后退按钮退出应用程序,而不是在 WebView 中向后导航

    我正在开发一个 WebView android 应用程序 我无法修复应用程序中的向后导航问题 我正在使用这段代码并尝试对此进行所有修改 public class DeviceActivity extends Activity private
  • 对于无符号数和有符号数的补码,哪些算术运算是相同的?

    我正在设计一个简单的玩具指令集和随附的模拟器 并且正在尝试找出支持哪些指令 在算术方面 我目前有无符号加法 减法 乘法和除法 但是 我似乎无法找到以下问题的明确答案 哪些算术运算符需要签名版本 哪些算术运算符的无符号和补码签名版本等效 例如