问题标签 [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.

0 投票
18 回答
854136 浏览

c++ - 迭代 std::vector:无符号与有符号索引变量

在 C++ 中迭代向量的正确方法是什么?

考虑这两个代码片段,这个工作正常:

和这个:

生成warning: comparison between signed and unsigned integer expressions.

我是 C++ 领域的新手,所以这个unsigned变量对我来说看起来有点吓人,我知道unsigned如果使用不当,变量会很危险,所以 - 这是正确的吗?

0 投票
16 回答
120191 浏览

java - 为什么 Java 不支持无符号整数?

为什么 Java 不包含对无符号整数的支持?

在我看来,这是一个奇怪的遗漏,因为它们允许人们编写不太可能在意外大输入时产生溢出的代码。

此外,使用无符号整数可以是一种自我证明的形式,因为它们表明无符号整数打算保存的值永远不会是负数。

最后,在某些情况下,无符号整数对于某些操作(例如除法)可能更有效。

包含这些有什么缺点?

0 投票
10 回答
241857 浏览

java - Java相当于unsigned long long?

在 C++ 中,我喜欢访问 64 位无符号整数 viaunsigned long long int或 via uint64_t。现在,我知道,在 Java 中 long 是 64 位。但是,它们已签名。

是否有可用作 Java 原语的 unsigned long (long)?我该如何使用它?

0 投票
13 回答
99989 浏览

c - 为什么 C 没有无符号浮点数?

我知道,这个问题似乎很奇怪。程序员有时想得太多。请继续阅读...

在 CI 中使用signedunsigned整数很多。我喜欢这样一个事实,即如果我执行诸如将有符号整数分配给无符号变量之类的操作,编译器会警告我。如果我比较有符号整数和无符号整数等等,我会收到警告。

我喜欢这些警告。他们帮助我保持我的代码正确。

为什么我们对花车没有同样的奢侈?平方根绝对不会返回负数。还有其他地方负浮点值没有意义。无符号浮点数的完美候选者。

顺便说一句 - 我并不热衷于通过从浮点数中删除符号位可以获得的单个额外精度。我float对现在的 s 非常满意。我有时只想将浮点数标记为无符号,并得到与整数相同的警告。

我不知道任何支持无符号浮点数的编程语言。

知道为什么它们不存在吗?


编辑:

我知道 x87 FPU 没有处理无符号浮点数的指令。让我们只使用签名的浮点指令。滥用(例如低于零)可以被视为未定义的行为,就像未定义有符号整数的溢出一样。

0 投票
5 回答
5095 浏览

c# - 为什么 C# 中的“int[] 是 uint[] == true”

有人可以澄清一下 C#is关键字吗?特别是这两个问题:

Q1) 第 5 行;为什么这会返回 true?

Q2) 第 7 行;为什么没有演员表异常?

MSDN 的描述没有说明情况。它声明is如果满足这些条件中的任何一个,它将返回 true。(http://msdn.microsoft.com/en-us/library/scekt9xw(VS.71).aspx>MDSN 文章)

我不相信您可以将 int[] 有效地转换为 uint[]。因为:

A)此代码无法编译:

B)在调试器中进行强制转换会产生错误:

果然,如果第 3 行是 int[] 而不是 object 那么它永远不会编译。这让我想到了与 Q2 相关的最后一个问题。

Q3) 为什么 C# 在调试器和编译器中会引发转换/转换错误,但在运行时不会?

0 投票
8 回答
126705 浏览

language-agnostic - 有符号变量和无符号变量有什么区别?

我在 C 和 C++ 的上下文中看到了这些,但是有符号变量和无符号变量有什么区别?

0 投票
5 回答
5765 浏览

c# - C#:无法从 ulong 转换为字节

奇怪我怎么能在 C++ 中做到这一点,但在 C# 中却不行。

为了清楚起见,我将在 C++ 中粘贴这两个函数,然后在 C# 中粘贴,并在 C# 代码中用注释“//error”标记有问题的行。这两个函数所做的是对参数进行编码,然后将其添加到名为 byte1seeds 的全局变量中。

这些是 C++ 中的函数

现在是 C# 代码:

我更改了函数 GenerateValue。它没有将指针作为参数,而是有一个 ulong 参数。

要调用它并更改我使用的两个值:

  1. ulong mut1 = GenerateValue(mut);
  2. 穆特=穆特1;

这是翻译后的函数(有问题的行用“//error”标记);

错误是:

无法将类型“ulong”隐式转换为“byte”。存在显式转换(您是否缺少演员表?)

编辑:有问题的第 3 行的错误是:

无法将类型“int”隐式转换为“byte”。存在显式转换(您是否缺少演员表?)

问题来了:如何解决这些错误?

提前致谢!

0 投票
5 回答
4785 浏览

c++ - 为什么将有符号值分配给无符号整数时编译器不给出错误?- C++

我知道unsigned int不能保存负值。但是以下代码编译时没有任何错误/警告。

当我打印变量a时,我打印了一个错误的值。如果无符号变量不能保存有符号值,为什么编译器允许它们编译而不给出任何错误/警告?

有什么想法吗?

编辑

编译器:VC++编译器

解决方案

需要使用警告级别 4。

0 投票
8 回答
18698 浏览

c++ - 将一个无符号字符数组转换为一个浮点数组

在 C++ 中将无符号字符数组转换为浮点数组的最佳方法是什么?

我目前有一个for循环如下

我还需要反转过程,即从无符号字符转换为浮点数(浮点数到8位转换)

任何意见,将不胜感激

谢谢

0 投票
7 回答
88482 浏览

c++ - 如何确定 unsigned char* 的长度?

如何确定 unsigned char* 的长度?