问题标签 [unsigned-integer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
784 浏览

c++ - 无符号整数背后的想法

可能重复:
如果我为无符号变量分配负值会发生什么?

我是 C++ 新手,我想知道如何使用无符号类型。对于unsigned int类型,我知道它可以取 0 到 4294967296 之间的值。但是当我想初始化一个 unsigned int 类型时,如下所示:

输出看起来像4294967286 The got this output = max value - 10。所以我想了解内存中发生了什么?在此计算继续进行时,正在执行哪些过程?感谢您的回答。

0 投票
3 回答
5464 浏览

floating-point - 单精度浮点求反的位级表达式

所以我很难实现这个想法。我基本上只是想接受论点'uf'并否定它。我将参数视为 32 位的无符号整数,这相当于单精度浮点数的外观。应该工作相同:有符号位,8 位指数,23 位小数。

但是,当参数为 NaN 时,我只需要返回参数即可。理想情况下,我希望能够在没有任何铸造或高级操作的情况下实现这一点。显然,我应该能够只用按位运算和整数/无符号运算(if、while、||、&&)来做到这一点。

我不知道从哪里开始?我是否只需要提取“uf”的每个部分并分别否定它们(使用按位运算符),然后在最后将它们全部加在一起?我可能会使用 (~uf) + 1 来否定。

对于 NaN,我认识到我只需要检查 8 位部分(exp)中的所有 1 以及小数部分中除 0 之外的任何内容(否则它被认为是无穷大)。

作为重申,这是在 C 中为 32 位系统完成的。

0 投票
2 回答
10428 浏览

c - 将 unsigned short int 初始化为有符号值

  1. 这给了我输出 65535。为什么?
  2. 当我在负侧增加 a 的值时,输出为 (2^16-1=)65535-a。
  3. 我知道 unsigned short int 的范围是 0 到 65535。但是为什么在 0 到 65535 的范围内旋转。里面发生了什么?

    /li>
  4. 输出为-1。
  5. %d 用于有符号十进制整数,而不是为什么这里不遵循打印其(int)范围的最大值的规则。
  6. 为什么这部分的输出是-1?
  7. 我知道 %u 用于打印无符号十进制整数。

    为什么行为在第二个代码中未定义,而不是在第一个代码中。?

    这是我在 gcc 编译器中编译的。这是一个 C 代码在我的机器上 sizeof short int 是 2 个字节,而 int 的大小是 4 个字节。

0 投票
1 回答
7340 浏览

c - 如何将 char 数组转换为 unsigned int?

我有以下代码:

请告诉我,将“数组”值写入“地址”变量的正确方法是什么?

0 投票
2 回答
1464 浏览

assembly - Howcome 程序集没有有符号和无符号的减法指令?

我正在为它制作一个虚拟机和一个 C 编译器。我不明白的是大多数指令集如何具有 IMUL 和 IDIV,但没有 ISUB 和 IADD。由于 sub 通常是 unsigned sub 我怎么能在 x86 中做类似的事情

并得到-2?

0 投票
1 回答
1391 浏览

c++ - 为什么在进行 int / unsigned int 除法时使用 'divl'

我在 X86 中测试了这段代码。

我在这里粘贴汇编代码:

你能告诉我,为什么 int 和 unsigned int 之间的划分使用 divl 而不是 idivl ?

0 投票
2 回答
373 浏览

c# - C# int32 文字只能存储在 long 数据类型中

我正在准备一个非常棘手的 c# 考试,并且在这样做的时候突然出现了这个问题。我有以下代码:

-12u被识别为System.Uint32文字,但它只能存储在类型的变量中long。这是为什么 ?

0 投票
1 回答
470 浏览

c - C - unsigned int 在赋值时没有得到正确的值

这是来自 gdb:

这是来自代码:

您可以看到 database->size 和 size 都来自 (unsigned int) 类型,在代码和 gdb 中,但由于某种原因,赋值后的值不同。

有谁知道这是什么原因?

0 投票
2 回答
3637 浏览

python - 在python中将字符串转换为8位有符号整数

我正在尝试使用 python 和 ctypes 将电机控制系统拼凑在一起,我需要做的一件事是获取文本输入并将其转换为 8 位有符号整数。

下面是我试图调用的函数的文档。应该输入到程序中的文本是“EPOS2”

在此处输入图像描述

数据类型定义如下图(注意'char*'相当于一个8位有符号整数)

在此处输入图像描述

那么如何将“EPOS2”转换为 -128 到 127 之间的值?

最终我想做的是这样的:

0 投票
1 回答
3365 浏览

java - Java unsigned - remove sign bit

I have this function:

The intent here is to use the value in 'b' as if it were positive, by this I mean as if it were an unsigned int, capable of holding 65536 values. However, it doesn't work. For example:

If 'b == -122' the function returns '65414'.

I also tried this way:

But that would return me '48' if 'b == 304'.

I'm really lost here, hope someone can help out.