twos-complement 相关问题

二进制补码是对二进制数的数学运算,以及基于该运算的二进制有符号数表示。

为什么是 QString("FFFFFFFF").toInt(0, 16);返回0?

您可能知道,补码表示中的 0xFFFFFFFF 等于 -1(对于 32 位)。但是下面的代码: qint32 aa = QString("FFFFFFFF").toInt(0, 16); q调试()< 您可能知道,补码表示中的 0xFFFFFFFF 等于 -1(对于 32 位)。但是下面的代码: qint32 aa = QString("FFFFFFFF").toInt(0, 16); qDebug()<<aa; 打印0。代码如下: qint32 aa = 0xffffffff; qDebug()<<aa; 打印-1! 这是为什么? 如果您阅读文档,您可以看到toInt“如果转换失败,则返回0。” 您的输入不适合有符号的 32 位整数,因此可能转换失败。 您可以使用 ok 参数来验证这一点: bool ok; qint32 aa = QString("FFFFFFFF").toInt(&ok, 16); if (ok) qDebug() << aa; else qDebug() << "Conversion failed!"; FFFFFFFF 不是整数格式。 0xFFFFFFFF 是。而且 0xFFFFFFFF 也超出了 int 范围。尝试使用有符号整数。将转换函数 toInt 更改为 toUInit。这是代码: quint32 aa = QString("0xffffffff").toUInt(0, 16); quint32 bb = 0xffffffff; qDebug()<<aa; qDebug()<<bb; 已在我的机器上测试过。输出为 4294967295。

回答 2 投票 0

减法在汇编中产生负数 - 十六进制值是多少?

我对汇编非常陌生,所以我不知道这是否是一个愚蠢的问题,但我有一个问题,要求我阅读以下汇编行并说出 %rdi 中存储的值之后...

回答 1 投票 0

在加宽 128 位乘法中计算高 64 位的便携式实现

如何实现两个 64 位数字的有符号和无符号乘法,扩展为 128 位,并丢弃低 64 位,返回高 64 位?乘法必须正确地...

回答 1 投票 0

无符号整数溢出的规则是进位与进位一致吗?

我正在阅读一本有关系统编程的教科书,它指出当且仅当最左边的位中的进位与进位不匹配时,无符号整数才会发生溢出。 所以如果

回答 1 投票 0

系统Verilog减法执行

我正在设计一个带有 8 位数据路径的 RISC 处理器。 在我的减法运算 ALU 中,我有以下代码: 逻辑[7:0] inA, inB, rslt; 逻辑c_o; {c_o, rslt} = inA - inB; 当模拟...

回答 1 投票 0

将24位二进制补码转换为int?

我有一个 C#/Mono 应用程序,可以从 ADC 读取数据。我的读取函数将其返回为 ulong。数据是二进制补码,我需要将其转换为 int。例如。: 0x7FFFFF = + 8,388,607 0x7FFFFE = ...

回答 2 投票 0

变量 > -1 在 C 中如何准确计算?

#包括 #包括 int main() { uint16_t 彼得 = 8; uint32_t 彼得2 = 8; 如果(彼得> -1) { printf("彼得真 “); //预期的 ...

回答 2 投票 0

N 余数到 2 的补码

有人可以解释一下如何做到这一点吗?这不是家庭作业。 有人可以向我解释一下如何做到这一点吗? 表明如果选择 N 等于 2^(m-1),其中 m 是位数 在...

回答 2 投票 0

为什么减1并进行按位求逆相当于按位求逆并加1?

我正在研究二进制补码,并遇到了两种将数字的二进制补码表示形式转换为其十进制表示形式的方法: 初始二进制数减1,则...

回答 2 投票 0

编译过程中遇到负数时,它们是如何存储在“硬”内存中的?

我正在学习C/C++,所以对于某些人来说这可能是一个基本问题,但它让我感到困惑。 这里给出了与我们如何解释正数和负数相关的美丽答案......

回答 1 投票 0

使用二进制补码将两个小数相加

给出的问题: 假设 151 和 214 是以二进制补码格式存储的有符号 8 位十进制整数。计算151+214,结果应写成十进制。检查是否溢出。提示:溢出

回答 1 投票 0

使用二进制和二进制补码将值从正数切换为负数

因此,对于我的大学计算机课程(英国),我们被分配了一项家庭作业任务,将用户的输入更改为其负值(1 到 -1、13 到 -13 等...),但我不知道如何做吧。我有...

回答 1 投票 0

关系运算符精度

我有一个关于关系运算符的问题 他们总是给出正确的结果吗? 因为如果我们运行这行代码,结果将是 1 而不是 0 计算<<(ULLONG_MAX==-1); and if we keep

回答 1 投票 0

如何在C中仅使用按位运算符来检查值是否大于7?

对于这道题,如果参数大于7,则要求返回1,否则返回0。 例如,如果 x 为 8,则该函数将返回 1。如果 x 为 7,则该函数将返回 0。 唯一合法的

回答 3 投票 0

CSAPP数据实验室(isTmax):!好像不起作用

我的想法就像这个问题一样。 我的代码 isTmax 是这样的: int isTmax(int x) { 返回!((~x)+(~x)); // 应该是对的,运算符“!”似乎不起作用 } x 是 2s 补码,...

回答 1 投票 0

2 使用逻辑门对有符号二进制转换器进行补码?

我需要使用门电路创建一个 2 的补码来签名二进制转换器。我可以使用哪些逻辑门?

回答 3 投票 0

十六进制的补码加法需要转换成二进制吗?

3 9 6 F E 2 + 5 3 8 A A A 这是我假设二进制补码加法必须解决的问题。我知道如何找到两者的互补。 C 6 9 0 1 E A C 7 5 5 6 然而,大多数

回答 1 投票 0

计算 Fenwick 树/二元索引树 (BIT) 中的索引

Fenwick树数据结构需要一个成员函数read。对于索引 idx,read 必须计算几个索引 idx[0]、idx[1]、idx[2]、...、idx[last]。每个 idx[i] 将是结果的值...

回答 1 投票 0

int256_t 使用 C++ boost 库能够显示 2^{256} - 1

我正在使用 boost/multi precision 中的 cpp_int 头文件,出于某种原因,当我将 -1 转换为 uint256_t 然后将其转换回 int256_t 时,它保持相同的值(~1.15e77)。当我增加...

回答 0 投票 0

3 字节切片和有符号整数类型之间的转换

我有一个由 3 个字节(以 LE 排序)组成的切片,表示一个有符号整数,我想将其转换为任何整数类型,最好是 int32,然后再转换回自身。 b := []b...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.