问题标签 [unsigned]
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.
.net - 无符号数与有符号数作为索引
在.Net 中使用有符号数作为索引的理由是什么?
在 Python 中,您可以通过发送负数从数组末尾开始索引,但在 .Net 中并非如此。.Net 稍后添加这样的功能并不容易,因为它可能会在索引时使用特殊规则(是的,一个坏主意,但我猜它会发生)破坏其他代码。
并不是说我曾经需要索引超过 2,147,483,647 大小的数组,但我真的不明白他们为什么选择有符号数字。
可能是因为在代码中使用带符号的数字更正常吗?
编辑:我刚刚找到这些链接:
Edit2:好的,Matthew Flaschen 发布的线程中还有其他几个很好的理由:
- 历史原因,因为它是一种类似 c 的语言
- 与 c 互操作
c++ - 为什么-1 > sizeof(int)?
考虑以下代码:
为什么是-1 > sizeof(int)
真的?
- 是不是真的
-1
晋升为unsigned(-1)
然后unsigned(-1) > sizeof(int)
。 -1 > sizeof(int)
如果sizeof (int) 是 4 是真的吗?-1 > size_t(4)
如果是这样,为什么-1 > size_t(4)
是假的?
这是符合 C++ 标准的吗?
mysql - 共识?MySQL,有符号 VS 无符号主键/外键
我已经看到了一些关于现在每个人在签名和未签名键值方面都在做什么的线程。似乎 unsigned 是最佳的,因为它允许以相同的成本获得两倍的行数。签名密钥有什么好处吗?
有没有标准的共识?似乎已签名是答案,因为“一直都是这样”
java - 如何在 Java 中将 short 打印为 unsigned short
我有一个短数组,其值介于 0 和短的最大值之间。我缩放数据(将其显示为 TYPE_USHORT),以便生成的短值介于 0 和 65535 之间。我需要打印一些缩放值,但不知道如何打印。数据位于数组和 BufferedImage 中。
c - 如何在 C 中打印“unsigned long”?
我永远无法理解如何unsigned long
在 C 中打印数据类型。
假设unsigned_foo
是一个unsigned long
,然后我尝试:
printf("%lu\n", unsigned_foo)
printf("%du\n", unsigned_foo)
printf("%ud\n", unsigned_foo)
printf("%ll\n", unsigned_foo)
printf("%ld\n", unsigned_foo)
printf("%dl\n", unsigned_foo)
他们都打印某种-123123123
数字而不是unsigned long
我的数字。
c - 在 char* 和 UBYTE* (unsigned char*) 之间进行类型转换
背景:作为套接字会话的一部分,我收到了一个 char* 数组。现在我们必须匹配其中的令牌(HTTP 标头)。这里的代码是我们创建了一个 UBYTE* 并在使用 UBYTE 进行类型转换后从 char 数组中获取值。稍后我们将相同的 UBYTE 指针传递给其他函数,该函数在将其类型转换为 char* 后接受 char*。
这里的问题是这适用于发布版本而不是调试版本(使用 -g 和不同的优化)。不仅在调试模式下添加少量打印隐藏了问题。
所以我在这里的问题是,UByte 指针(本质上是一个无符号字符)和 char 指针有什么区别。将 UByte 更改为 char 可以解决我在所有模式下的问题,但我对此没有任何解释?有什么想法吗 ?
c# - 为什么无符号 CLR 类型在 C# 中如此难以使用?
在开始使用 C# 之前,我主要来自 C/C++ 背景。我在 C# 中的第一个项目中所做的其中一件事是创建一个这样的类
然后我对这需要铸造的事实感到羞愧:
一样
为什么语言设计者决定使有符号和无符号整数类型不能隐式转换?为什么在 .Net 库中没有更多地使用无符号类型?例如String.Length
,永远不可能是负数,但它是一个有符号整数。
vb.net - 如何在 VB.NET 中将整数作为无符号参数传递?
我setInstance(ByVal instance As UInteger)
在我的VB.NET代码中使用库调用。我需要传递的参数是一个Integer
. 我需要做些什么来将整数参数转换为无符号整数吗?该数字保证为正且小于 10。
java - 如何在 Java 中反转无符号字节的位?
我正在尝试为一种非常简单的加密类型编写解码器。通过扫描仪输入 0-255 之间的数字,位被反转,然后转换为字符并打印。
例如,数字 178 应转换为字母“M”。
178 是 10110010。
反转所有位应给出 01001101,即 77 或“M”作为字符。
我遇到的主要问题是,据我所知,Java 不支持无符号字节。我可以将值读取为 int 或 short,但是由于额外的位,这些值将在转换过程中关闭。理想情况下,我可以只使用按位补码运算符,但我认为如果我使用有符号数字这样做,我最终会得到负值。关于我应该如何处理这个问题的任何想法?
c++ - 使用 SSE 计算无符号整数之间的绝对差
在 C 中是否有一种无分支技术来计算两个无符号整数之间的绝对差?例如,给定变量 a 和 b,我希望值 2 用于 a=3、b=5 或 b=3、a=5 的情况。理想情况下,我还希望能够使用 SSE 寄存器对计算进行矢量化。