首页 文章
  • 0 votes
     answers
     views

    将十六进制转换为二进制,将一位和二位的补码转换为16位

    我试图将FFAD(十六进制)转换为十进制值,然后对其执行一个和两个补码 . FFAD表示为16位整数 . 当我将FFAD转换为基数2时,我得到1111111110101101 . 我的问题是我怎么知道它是否是负数? 我有二进制,现在做一些补码正常我会将最后一位从0更改为1然后翻转所有位,但作为一个16位整数我没有任何更多的可用位 . 由于第16位是1,这是否意味着它是负数?我该怎么做呢?我只是对...
  • 0 votes
     answers
     views

    两个补码; 0FFFh为正,0FFFFh为负?

    从书,装配艺术,我复制这句话: 在二元补语系统中,H.O . 一个数字位是一个符号位 . 如果H.O.位为零,数字为正;如果H.O.位是1,数字是负数 . 示例:对于16位数字:8000h是负数,因为H.O.比特就是一个 . 100h是正的,因为H.O.位为零 . 7FFFh是积极的 . 0FFFFh为负数 . 0FFFh为正 . 我不明白最后两个例子 . 如果将这两个示例转换为二进制...
  • 4 votes
     answers
     views

    二进制补码表示

    我最近一直在为一个略微修改的 Abstract Syntax Notation 实现一个专门的解析器 . 规范说整数被编码为八位字节数组,它们被解释为二进制二进制补码整数 . 所以,起初我认为将其反序列化为实际C int 的最佳方法是简单地以值0开始,然后将每个八位字节的OR与值类似: uint64_t value = 0; int shift = 0; std::vector<uint8...
  • 4 votes
     answers
     views

    如何使用二进制补码方法划分两个负数?

    我正在研究更多关于二元算术的知识并且遇到了问题 -21/-3 . 预期答案是 7 . 当然我知道我们可以通过取消负号并将 21 除以 3 来实现 . 我在两个数字的减法中看到了两个补码的美 . 所以我开始是这样的: -21 is: 11101011 -3 is: 11111101 最初我尝试分割,但由于分子大于分母分裂是不可能的 . 同样很明显它相当于将 235 除以 253 . 所以我...
  • 0 votes
     answers
     views

    添加两个补码二进制

    女士们,先生们,我已经成功地理解了无符号二进制数的加法等 . 然而,这两个补充让我击败..让我用一些例子来解释 . 示例练习题,使用8位有符号整数存储系统执行每个算法,在两个补码下: 1111111 01100001 + 00111111 ---------- 10100000 <== My Answer (idk if right / wrong), but i think ...
  • 4 votes
     answers
     views

    解释为什么x ==〜(~x 1)1(两个补码并返回!)

    众所周知,内存中的负数通常表示为两个补码数 from x to ~x + 1 并且要回去,我们不会做明显的事情 ~([~x + 1] - 1) 但相反,我们做到了 ~[~x + 1] + 1 有谁可以解释为什么它总是有效?我想我可以用1位,2位,3位数证明它,然后使用数学归纳法,但它无法帮助我理解它是如何工作的 . 谢谢!
  • 0 votes
     answers
     views

    关于Two's Complement的困惑

    我正在试图找出如何在签名数字时做数学 . 我有点理解Two的补充概念,但知道如何充分利用它是让我感到困惑的原因 . 这是我目前正在处理的问题: 1100.1111.1110-0011.1111-1010-1100.1101.1100 我所做的是找到每个数字的二进制补码,然后将它们加在一起 . 1100.1111.1110 -> 0011.0000.0010 0011.1111 -> ...
  • -1 votes
     answers
     views

    二进制补码二进制VHDL

    我必须在VHDL中将二进制数从A转移到-A . 我对两个补码表示法有一些疑问 . 例如,如果我有二进制 0000 0101 的 A(8 bit) = 5 . 从在线资料中我意识到要将其转换为二进制补码形式,我需要反转所有在最后加1的位: 0000 0101 --> 1111 1010 + 0000 0001 = 1111 1011 ,这代表 -A=-5 ; 我现在的疑问是关于这个最终的二进...
  • 9 votes
     answers
     views

    二进制补码转换

    我需要将二进制补码格式的字节转换为正整数字节 . 范围-128到127映射到0到255 . Examples: -128 (10000000) -> 0 , 127 (01111111) -> 255, etc. EDIT 为了消除混淆,输入字节(当然)是0到255范围内的无符号整数 . 但是它表示使用二进制补码格式在-128到127范围内的有符号整数 . 例如,输入字节值128(二...
  • 6 votes
     answers
     views

    添加和减去两个补码

    使用六位一和二的补码表示我试图解决以下问题: 12 - 7 现在,我先拿二进制12和二进制7 . 12 = 001100 - 6 bit 7 = 000111 - 6 bit 然后,我会将这个位翻转为两个补码并添加一个吗? 12 = 110011 ones complement + 1 ------- 001101 7 = 111000 ones c...
  • 1 votes
     answers
     views

    使用二进制补码进行二进制减法

    我试图用二进制形式的二进制补码来解决以下问题 . 7.5 - 6.75 7.5 - 6.75可以改写为(7.5)( - 6.75) 取二进制十进制数 7.5 = 111.1 6.75 = 110.11 -6.75 = 001.00 现在我应该在“ . ”(句号)的左侧或右侧添加1?
  • 0 votes
     answers
     views

    两个补码数据的固定点减法

    我有一些真实的数据 . 例如 +2 和 -3 . 这些数据以2位补码不动点表示,具有4位二进制值,其中MSB表示符号位,小数位数为零 . 所以2 = 0 010 -3 = 1101 添加这两个数字是 (+2) + (-3)=-1 (0010)+(1101)=(1111) 但是在减法的情况下 (+2)-(-3) 我该怎么办? 是否需要再次使用 1101 (-3) 的两个补码并添加 0010...
  • 1 votes
     answers
     views

    二进制补码表示所需的最小位数

    我需要找出我们如何在二进制补码系统中以最小位数表示 -1 和 -3 . 我计算了答案 1 和 111 但答案似乎不正确 . 如果我能得到一些帮助,我将非常感激 . 谢谢
  • 5 votes
     answers
     views

    以二进制补码表示读/写Haskell Integer

    我需要以与Java对它的BigInteger类兼容的方式读写Integers: 返回一个包含此BigInteger的二进制补码表示的字节数组 . 字节数组将采用big-endian字节顺序:最重要的字节位于第0个元素中 . 该数组将包含表示此BigInteger所需的最小字节数,包括至少一个符号位,即(ceil((this.bitLength()1)/ 8)) . 可悲的是,这排除了 Data...
  • 1 votes
     answers
     views

    Python - 实现两个补码的最有效方法? [重复]

    这个问题在这里已有答案: Two's Complement in Python 14个答案 二进制补码是当您反转位然后添加二进制1位数 . 所以例如...... 0011001 apply two's complement 1. inverse the bits, 1100110 2. add a binary digit, 1100110 + 1 = 1100111 另一个显示溢出情况的例...
  • 0 votes
     answers
     views

    两个补语的定义?

    我在这里阅读了几个问题/答案: twos-complement-in-python is-twos-complement-notation-of-a-positive-number-the-same-number 有人提供了一些示例代码来创建数字的二进制补码: def twos_comp(val, bits): """compute the 2's compl...
  • 3 votes
     answers
     views

    两个补充表格所需的最小比特数

    在我的中期,有一个问题说: 给定十进制值,在Two的补语表单中表示每个数字所需的最小位数是多少? 值为:-26,-1,10,-15,-4 . 我没有得到任何正确的问题,解决方案令人困惑 . 我真正理解的唯一部分是找到值所在的范围 . 例如,-15将在[-2 ^ 5,2 ^ 5]的范围内,并且-4将在[-2 ^ 2,2 ^ 2]的范围内 . 从这里需要哪些步骤才能找到需要多少位? 我试图找到一些模式...
  • 0 votes
     answers
     views

    二进制补码二进制形式

    在TC编译器中, 5 的二进制表示是 (00000000000000101) . 我知道负数存储为2的补码,因此二进制 -5 是 (111111111111011) . 最高位(符号位)为1,表示它是负数 . 那么编译器如何知道它是 -5 ?如果我们将 (111111111111011) 上面给出的二进制值解释为无符号数,它会变得完全不同吗? 另外,为什么1的赞美 5 -6 (111111...
  • 3 votes
     answers
     views

    围绕数字的硬件表示我的头脑:一个假设的二进制补码问题

    这是一个超级天真的问题(我知道),但我认为这将考虑到如何实现CPU的基本指令集,这将是一个很好的跳跃点: 在二进制补码系统中,您无法反转实现可以表示的最负数的符号 . 理论上的原因很明显,因为否定最负数将超出实施范围(范围总是类似的-128到127) . 但是,当您尝试对最负数进行否定操作时实际发生的情况非常奇怪 . 例如,在8位表示中,最负数是-128或二进制1000 0000 . 通常,要取消...
  • 72 votes
     answers
     views

    如何在Java中内部表示整数?

    我试图了解Java如何在内部存储整数 . 我知道所有java原始整数都是有符号的(除了短?) . 这意味着该字节的字节中可用的位数较少 . 我的问题是,所有整数(正数和负数)都存储为二进制补码或只是二进制补码中的负数吗? 我看到规格说 x bit two's complement number . 但我经常感到困惑 . 例如: int x = 15; // Stored as binary as...
  • 11 votes
     answers
     views

    python中两个数字的补码

    我编写的代码将包含所有16位长的负数和正数,MSB是符号,也就是二进制补码 . 这意味着我可以拥有的最小数字是 -32768 ,这是两个补码形式的 1000 0000 0000 0000 . 我能拥有的最大数字是 32767 ,即 0111 1111 1111 1111 . 我遇到的问题是python用相同的二进制表示法表示负数,正数只是在前面加一个减号,即 -16384 显示为 -0100 ...
  • 0 votes
     answers
     views

    理解两个补语

    因此,从我到目前为止的理解,0和1作为数字的加号或减号 . 如果我有一个二进制数10101(十进制数为21)的数字,这怎么转换为负数?它变成了10101 00001 = 10111吗?还是它被添加到前面? 同样在尝试理解它的时候,如果你试图得到一个数字,比如九位二的补码怎么办?用9位写这个是000010101 21,然后在前面加一个? 我来回走动但是我没理解 .
  • 4 votes
     answers
     views

    当左移两个补码中的负数时,保证负面结果?

    假设负binary number表示在two's complement, how can we guarantee the sign is preserved? 假设我们用四位表示十进制数 -5 : 1011 ,并且想要左移一个位置乘以2: 1011 << 1 此操作返回0110,即6, not -10 as we would have hoped . (我假设这只是第二位为0的负...
  • 0 votes
     answers
     views

    将十进制转换为二进制补码十六进制

    我试图弄清楚如何将十进制转换为二进制补码十六进制 . 我完全理解如何取一个小数并找到它的两个补码(对于正值和负值) . 我也完全理解十六进制如何用于无符号整数 . 但是,我不确定二进制补码规则如何与十六进制一起使用 . 是否有使用十六进制的二进制补码的过程? 或者是这个过程:将十进制转换为二的补码二进制,然后将其转换为十六进制 . 这是我唯一需要做的事情吗?或者是否有一个更复杂的公式,用于找到给出...
  • 2 votes
     answers
     views

    使用2的补码减去二元分数

    我在Stack Overflow中找到了不同的帖子,但是似乎没有人回答这个问题,因为在他们的问题中,给出了十进制表示(我的不是)或答案对我来说是模糊的(如this) . 我试图在分数或浮点数中减去二进制数字 . 0.0110 - 0.100101 给出的答案是 -0.001101 ,但解决方案未显示 . 由于我没有看到任何直接的方式( not DEC到BIN)将二进制小数位转换为2的补码,我尝...
  • 1 votes
     answers
     views

    16位二进制补码

    问题是以下16位数的两个补码是多少? 1.0x3f9d 我的回答是: 0011111110011101二进制,因为0x3f9d是正数 . 但是,有人说答案是: 1100000001100011 我很困惑,因为 1100000001100011 是一个负数 . 哪一个是正确的答案?
  • 0 votes
     answers
     views

    二进制补码二进制到十进制

    我无法将以下两个补码二进制数转换为十进制数 01110000 步骤1:反转位 - > 10001111步骤2:将1加到位 - > 10010000 因此,十进制值为144 但是,我使用在线转换器,它说十进制值是112
  • 0 votes
     answers
     views

    C#转换一个's complement bits to a two' s补充多长?

    在C#中,如何将64位补码(表示为long或ulong)转换为带符号的二进制补码? 作为参考,我正在尝试使用 BitConverter.DoubleToInt64Bits() 实现基于ULP的双重比较 .
  • 7 votes
     answers
     views

    在C中检测一个's or two' s补码架构?

    检测架构是否在C中使用一个或两个补码表示的最可靠方法是什么?
  • 2 votes
     answers
     views

    1 's complement to 2' s补码转换

    我的代码是一个将十进制转换为二进制的类 . 它将显示二进制,一个补码和二进制补码 . 到目前为止,我已经找到了一个补码,但在找到两个补码的解决方案时遇到了问题 . 我的计划是使用补码的输出作为二进制补码方法的输入并转换 . 这是正确的方法吗? //This method will convert binary result to ones complement public String do1s...

热门问题