问题标签 [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 回答
25250 浏览

java - 将 32 位无符号整数(大端)转换为 long 并返回

我有一个 byte[4] 包含一个 32 位无符号整数(以大端序),我需要将其转换为 long(因为 int 不能保存无符号数)。

另外,我该如何做,反之亦然(即从包含 32 位无符号整数的 long 到字节 [4])?

0 投票
3 回答
7468 浏览

c++ - 将 2^31 分配给有符号和无符号 32 位整数变量后的奇怪结果

正如问题标题所示,将 2^31 分配给有符号和无符号 32 位整数变量会产生意想不到的结果。

这是我制作的简短程序(in C++),以了解发生了什么:

这是输出:

然后我向它添加了另一个函数p()

在编译和运行时,这让我更加困惑:

为什么编译器要抱怨左移计数太大?sizeof(unsigned long long) 返回 8,那么这是否意味着 2^63-1 是该数据类型的最大值?

让我震惊的是,也许 n*2 和 n<<1,并不总是以相同的方式表现,所以我尝试了这个:

这给出了 2^63 的正确值作为输出9223372036854775808(我使用 python 验证了它)。但是做一个左屁屁有什么问题呢?

左算术移位 n 相当于乘以 2 n (前提是值不溢出)

——维基百科

该值没有溢出,只会出现一个减号,因为该值为 2^63(所有位都已设置)。

我仍然无法弄清楚左移发生了什么,有人可以解释一下吗?

PS:这个程序是在运行 linux mint 的 32 位系统上运行的(如果有帮助的话)

0 投票
4 回答
10564 浏览

c++ - 为什么 size_t 是无符号的?

Bjarne Stroustrup 在 C++ 编程语言中写道:

无符号整数类型非常适合将存储视为位数组的用途。使用 unsigned 而不是 int 来获得更多位来表示正整数几乎不是一个好主意。通过声明变量 unsigned 来确保某些值是正数的尝试通常会被隐式转换规则打败。

size_t似乎是无符号的“以获得更多位来表示正整数”。那么这是一个错误(或权衡)吗?如果是,我们是否应该尽量减少在我们自己的代码中使用它?

Scott Meyers 的另一篇相关文章在这里。总而言之,他建议不要使用无符号接口,无论该值是否始终为正。换句话说,即使负值没有意义,也不一定要使用无符号数。

0 投票
1 回答
530 浏览

ios - 将扫描的条形码值解码为 int 值

当我扫描条形码时,如果它是Equal=2 ,我会得到一些值,那么我需要用==显示,如果它是Equal=3,那么我需要用=显示,如果该值为 4,则无效。

但是扫描条码是整数值——当使用NSASCII它解码时,它只显示直到值127,之后它显示无效结果。例如:如果我的条形码值 =9699结果值 =jem那么我添加的结果值 =jem= 实际字符串值 = asc值 id 只显示37

这是我的代码:

0 投票
6 回答
90757 浏览

c - C - unsigned int 到 unsigned char 数组转换

我有一个无符号整数(2 字节),我想将其转换为无符号字符类型。从我的搜索中,我发现大多数人建议执行以下操作:

是正确的方法吗?我问是因为 unsigned char 是 1 字节,我们将 2 字节数据转换为 1 字节。

为了防止任何数据丢失,我想创建一个 unsigned char[] 数组并将各个字节保存到数组中。我陷入了以下困境:

另外,我们如何将 unsigned char[2] 转换回 unsigned int

非常感谢。

0 投票
1 回答
3347 浏览

c++ - 使用 c++ api 访问 cv::Mat 中的元素 (x,y)

我知道很多关于这个论点的帖子,我已经阅读了很多,但我仍然感到困惑。问题是类型(哦,该死的,这是c,我必须处理数据类型!;-))。

我正在使用新的超酷模板化 C++ API 函数at

好的,这里是1通道的浮点数,没问题,输出很清楚:

现在只需做一些过滤器:

对于这里,alles klar,输出正是我想要的:

现在我想检查某个点(鼠标单击?随便)是否在范围内。

我记得在第一节计算机科学课上 achar的大小与 an 相同unsigned int(因为我的掩码类型是 0 == CV_8U)所以使用 char。但是cout抓住它作为一个字符,所以给我看一些无用的非 ascii 符号,所以把它存储在一个int.

这里的输出:

发生了什么?一团糟。为什么-1??或者,为什么是 256?发生了什么事?

0 投票
2 回答
4813 浏览

printing - 如何在 MIPS 中以十进制数打印无符号整数?

例如,我想在 MIPS 中以无符号十进制数打印此数字 A0090000(16)。所以打印结果应该是2684944384(10)。但我被卡住了,因为我只知道打印签名数字的汇编代码。

代码是这样的:

因此,如果我在该代码中输入 A0090000(16) 值而不是“5”,它将打印一个负十进制值(因为 MSB 为 1),即 -1610022912(10) 但我希望得到结果 2684944383(10 ),读作无符号数。

我怎样才能做到这一点?

0 投票
5 回答
333 浏览

c - 最快的归零方法

将无符号整数清零的最快方法是什么?

我目前只是将值设置为 0,但我不知道是否有任何技巧可以将变量归零?在我当前的项目中,我需要几个时钟周期。我使用的是标准 8051 处理器,如果有帮助的话,我需要将两个不同的变量归零。

0 投票
4 回答
13485 浏览

powershell - 如何声明一个无符号的 32 位整数?

有没有办法在 PowerShell 中声明一个 32 位无符号整数?

0xf我正在尝试添加一个无符号(以ie开头) 0xff000000 + 0xAA,但结果却是一个负数,而我希望它是0xff0000AA

0 投票
4 回答
45302 浏览

c - 将枚举定义转换为 unsigned int

根据这篇 SO 帖子:
C 中枚举的大小是多少?
枚举类型有signed int类型。

我想将枚举定义从 转换signed intunsigned int

例如,在我的平台上,anunsigned int是 32 位宽的。我想创建一个枚举:

我的编译器抱怨上面的定义超出了范围(它适用于 a signed int)。

如何声明unsigned int enum值?

编辑1:

  1. 首选不扩展到 64 位(因为代码驻留在嵌入式系统中)。
  2. 由于技能限制,此项目不允许使用 C++。:-(

编辑2:

  • 编译器是用于 ARM7 的 IAR Embedded Workbench。