signed相关内容

检查正数集合8086

我正在尝试编写汇编代码8086我有两个大小为10的数组X和Y,我想输入一个数字并检查其正y是否为1,如果为负则为0 但我的代码只显示了我输入的数字,但我希望它像这个例子一样。 示例: X : 2 -5 -7 8 -4 9 11 -12 90 -50 Y : 1 0 0 1 1 0 1 1 0 1 0 我写道: .MODEL SMALL .DATA x db 10 dup ..
发布时间:2022-08-23 20:52:08 其他开发

在一个不支持负零的系统中产生负零有什么意义?

C17 6.2.6.2/4表示: 如果实现不支持负零,则&;、|、^、~、<;<;的行为, And>>运算符的操作数将生成这样的值,这是未定义的。 如果我有一个2的补码系统,它不支持负零。它总是利用二进制数的所有可能组合来表示值。因此,无论使用哪种位运算,都不可能生成负零。那么这篇文章的意思是什么呢? 我的看法是,这部分指的是具有1的补码或带符号幅度的系统,这些系统 ..

IS(Int)(无符号)-1==未定义的行为

我在试着理解这句话的意思: (int)(unsigned)-1 == -1; 根据我目前的理解,会发生以下情况: -1是签名int,并强制转换为无签名int。这样做的结果是,由于回绕行为,我们获得了可以由unsigned类型表示的最大值。 接下来,我们在步骤1中获得的unsigned类型的最大值现在强制转换为signed int。但请注意,此最大值是unsigned type ..
发布时间:2022-03-22 10:54:51 C/C++开发

在 C/C++ 中检测有符号溢出

乍一看,这个问题可能与 How检测整数溢出?,但实际上有很大不同. 我发现虽然检测无符号整数溢出非常简单,但在 C/C++ 中检测 有符号 溢出实际上比大多数人想象的要困难. 最明显但最幼稚的方法是: int add(int lhs, int rhs){整数总和 = lhs + rhs;if ((lhs >= 0 && sum ..
发布时间:2022-01-31 10:29:55 C/C++开发

C中的无符号十六进制常量?

C 是否处理十六进制常量(例如 0x23FE)和有符号或无符号整数? 解决方案 数字本身总是被解释为非负数.十六进制常量没有符号或任何固有的方式来表示负数.常量的类型是其中第一个可以表示其值的类型: int无符号整数长整数无符号长整数长长整数unsigned long long int ..
发布时间:2022-01-23 23:14:14 其他开发

在 Perl 中将字符串中的十六进制数转换为负数

我在由 Perl 脚本解析的日志文件中有一堆数字表示为十六进制字符串,而我对 Perl 相对缺乏经验. 其中一些数字实际上是有符号负数,即 0xFFFE == -2 当表示为 16 位有符号整数时. 谁能告诉我从 Perl 中的字符串 FFFE 中获取该数字的签名表示的规范方法,或者以其他方式为我提供教程或其他资源? 解决方案 你可以使用 hex() 函数将十六进制转换为十进制 ..
发布时间:2022-01-17 09:40:30 其他开发

如何将十六进制字符串转换为有符号整数?

我得到一个需要转换为有符号 8 位整数的十六进制字符串.目前我正在使用 Int16/Int32 进行转换,这显然不会给我一个 8 位整数的负值.如果我得到十六进制的值 255,我如何将它转换为十进制的 -1?我假设我想使用一个 sbyte,但我不确定如何正确获取该值. 解决方案 我的解决方案是将第一个取 16 位整数的前 8 位并将它们存储在一个 sbyte 中. ..
发布时间:2022-01-14 14:49:38 C#/.NET

不使用 64 位数据类型的 32 位有符号整数乘法

我想在不使用 64 位数据类型的情况下进行 32 位有符号整数乘法.我的输入采用 Q1.31(两者)格式. input1 = A32 (Ah Al) - A32 的上半部分、下半部分input2 = B32 (Bh Bl) - B32 的高、低半部分 结果应该是 Q1.31 格式,留下溢出的情况. 我需要 C 代码.请同时提供格式说明. 解决方案 有符号 Q1.31 格式是一种完 ..
发布时间:2022-01-14 14:46:14 其他开发

为什么负整数大于无符号整数?

int main(void){无符号整数 y = 10;诠释 x = – 4;如果 (x > y)Printf("x 更大");别的Printf("y 更大");getch();返回(0);}输出:x 更大 我认为输出 y 会更大,因为它是无符号的.这背后的原因是什么? 解决方案 因为 int 值被提升为 unsigned int.特别是在 32 位机器上的 0xFFFFFFFC,作为 ..
发布时间:2022-01-14 14:12:01 其他开发

有符号整数与无符号整数

我是否正确地说有符号整数和无符号整数之间的区别是: 无符号可以容纳更大的正值,而没有负值. 无符号使用前导位作为值的一部分,而有符号版本使用最左边的位来识别数字是正数还是负数. 有符号整数可以同时包含正数和负数. 还有其他区别吗? 解决方案 无符号可以容纳更大的正值,没有负值. 是的. 无符号使用前导位作为值的一部分,而有符号版本使用最左边的位来识别数字是正 ..
发布时间:2022-01-14 14:03:42 其他开发

C ++将十六进制字符串转换为有符号整数

我想在 C++ 中将十六进制字符串转换为 32 位有符号整数. 因此,例如,我有十六进制字符串“ffffeffe".它的二进制表示是 11111111111111101111111111111110.它的有符号整数表示是:-65538. 如何在 C++ 中进行这种转换?这也需要对非负数起作用.比如十六进制字符串“0000000A",二进制是00000000000000000000000 ..
发布时间:2022-01-14 13:51:20 C/C++开发

如何在 Java 中执行无符号到有符号的转换?

假设我从输入设备读取了这些字节:“6F D4 06 40".该数字是 MilliArcSeconds 格式的经度读数.最高位(0x80000000)基本上总是零,并且在这个问题中被忽略. 我可以轻松地将字节转换为 无符号 整数:1876166208 但是如何将无符号值转换为其最终形式的 31 位有符号整数? 到目前为止,我想出的只是: 如果值 &0x40000000 那么它 ..
发布时间:2022-01-13 08:30:10 Java开发

如果我为无符号变量分配负值会发生什么?

我很想知道如果我将一个负值赋给一个无符号变量会发生什么. 代码看起来有点像这样. 无符号整数 nVal = 0;nVal = -5; 它没有给我任何编译器错误.当我运行程序时, nVal 被分配了一个奇怪的值!会不会是一些 2 的补码被分配给 nVal? 解决方案 官方解答 - 第 4.7 节 conv.integral "如果目标类型是无符号的,则结果值是与源整数一致的最 ..
发布时间:2022-01-12 23:32:07 C/C++开发

将 128 分配给 c 中的 char 变量

输出是 128 的 32 位 2 的补码,即 4294967168.如何? #include 主函数(){字符一个;a=128;如果(a==-128){printf("%u\n",a);}返回0;} 解决方案 在打开警告的情况下编译代码: 警告:从 'int' 到 'char' 转换中的溢出将值从 '128' 更改为 '-128' [-Woverflow] 告诉您分配 ..
发布时间:2022-01-12 20:58:24 其他开发

为什么在 char 变量中存储 255 在 C 中给出它的值 -1?

我在看一本C书,有一段作者提到的文字: "如果 ch(一个 char 变量)是有符号类型,那么将 255 存储在 ch 变量中会得到值 -1". 谁能详细说明一下? 解决方案 假设是 8 位 char,这实际上是实现定义的行为.值 255 不能表示为带符号的 8 位整数. 但是,大多数实现只是存储位模式,对于 255,位模式是 0xFF.使用二进制补码解释,作为有符号的 ..
发布时间:2022-01-12 20:48:14 其他开发