Questions tagged «unsigned»

无符号变量是只能代表非负数的变量。


17
在std :: vector上进行迭代:无符号vs有符号索引变量
在C ++中迭代向量的正确方法是什么? 考虑下面的两个代码片段,这一段效果很好: for (unsigned i=0; i < polygon.size(); i++) { sum += polygon[i]; } 还有这个: for (int i=0; i < polygon.size(); i++) { sum += polygon[i]; } 产生warning: comparison between signed and unsigned integer expressions。 我是C ++领域的新手,所以unsigned变量对我来说有点令人恐惧,我知道unsigned如果使用不正确,变量可能很危险,所以-这正​​确吗?
469 c++  stl  unsigned  signed 

15
有符号整数与无符号整数
我是否正确地说带符号整数和无符号整数之间的区别是: 无符号的可以具有较大的正值,而不能为负值。 Unsigned使用前导位作为值的一部分,而signed版本使用最左边的位来标识数字是正数还是负数。 有符号整数可以同时包含正数和负数。 还有其他区别吗?

16
Java为什么不支持unsigned ints?
Java为什么不包括对无符号整数的支持? 在我看来,这是一个奇怪的遗漏,因为它们允许人们编写不太可能在意外大的输入上产生溢出的代码。 此外,使用无符号整数可以是一种自我证明的形式,因为它们指示无符号int打算保留的值永远不会为负。 最后,在某些情况下,无符号整数对于某些操作(例如除法)可能更有效。 包括这些的不利之处是什么?

8
如何在C中打印f“ 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我的数字。

11
在Java中声明一个unsigned int
有没有一种方法可以在Java中声明一个无符号的int? 或也可以这样构成问题:Java的unsigned等同于什么? 只是为了告诉您上下文,我正在查看Java的实现String.hashcode()。我想测试整数是否为32 unsigned int时发生冲突的可能性。
316 java  integer  unsigned 

16
我们可以用Java做无符号字节吗
我正在尝试将无符号字节转换为带符号字节。问题是我接收的数据是无符号的,并且Java不支持无符号字节,因此当它读取数据时,会将其视为已签名。 我尝试通过以下来自Stack Overflow的解决方案将其转换。 public static int unsignedToBytes(byte a) { int b = a & 0xFF; return b; } 但是当再次将其转换为字节时,我得到了相同的签名数据。我正在尝试将此数据用作Java函数的参数,该Java函数仅接受字节作为参数,因此无法使用任何其他数据类型。我该如何解决这个问题?
185 java  unsigned 

12
为什么C没有未签名的浮点数?
我知道,这个问题似乎很奇怪。程序员有时会想太多。请继续阅读... 在CI中使用signed和unsigned整数很多。我喜欢这样的事实,即编译器会在执行诸如将带符号的整数分配给无符号的变量之类的操作时警告我。如果将带符号整数与无符号整数进行比较,则会收到警告。 我喜欢这些警告。他们帮助我保持我的代码正确。 为什么我们没有同样的花车奢侈品?平方根绝对不会返回负数。在其他地方,负浮点值也没有意义。无符号浮动的完美候选人。 顺便说一句-我不太希望通过从浮点数中删除符号位来获得额外的精度。我对floats 非常满意,因为它们现在是。我只想有时将浮点数标记为无符号,并得到与整数相同的警告。 我不知道任何支持无符号浮点数的编程语言。 知道为什么它们不存在吗? 编辑: 我知道x87 FPU没有处理未签名浮点数的指令。让我们只使用签名的float指令。误用(例如,低于零)可以视为未定义行为,就像带符号整数的溢出未定义一样。


7
size_t和unsigned int之间的区别?
我很困惑size_t。我在互联网上进行搜索,到处都提到这size_t是一个无符号类型,因此它只能表示非负值。 我的第一个问题是:如果仅用于表示非负值,为什么不使用unsigned int而不是size_t? 我的第二个问题是:size_t和unsigned int互换或不?如果没有,那为什么呢? 谁能给我一个很好的例子,size_t并简要介绍一下它的工作原理?
107 c  types  unsigned 


4
是无符号整数减法定义的行为吗?
我遇到了某人的代码,该人似乎认为当结果为负数时,从另一个相同类型的整数中减去无符号整数是有问题的。这样的代码即使在大多数架构上都能正常工作,也是不正确的。 unsigned int To, Tf; To = getcounter(); while (1) { Tf = getcounter(); if ((Tf-To) >= TIME_LIMIT) { break; } } 这是我能从C标准中找到的唯一含糊的相关报价。 涉及无符号操作数的计算永远不能溢出,因为无法用所得的无符号整数类型表示的结果的模数要比该所得的类型可以表示的最大值大一模。 我想可以用这个引号来表示,当右操作数较大时,该操作将被调整为在取模截数的上下文中有意义。 即 为0x0000 - 0x0001的== 0X 1 0000 - 0x0001的== 0xFFFF的 与使用依赖于实现的签名语义相反: 0x0000-0x0001 ==(无符号)(0 + -1)==(0xFFFF也是0xFFFE或0x8001) 哪种解释正确?完全定义了吗?

2
为什么C ++ 20中引入了std :: ssize()?
C ++ 20引入了以下std::ssize()免费功能: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; 似乎可以使用实现static_cast,将size()cl ass C的成员函数的返回值转换为其有符号的对等。 由于size()C 的成员函数始终返回非负值,所以为什么有人要将它们存储在带符号的变量中?万一真的要,那很简单static_cast。 为什么std::ssize()在C ++ 20中引入?
99 c++  stl  unsigned  signed  c++20 

7
什么是无符号数据类型?
我见过这种unsigned“无类型”类型使用过几次,但从未见过对此的解释。我想有一个对应的signed类型。这是一个例子: static unsigned long next = 1; /* RAND_MAX assumed to be 32767 */ int myrand(void) { next = next * 1103515245 + 12345; return((unsigned)(next/65536) % 32768); } void mysrand(unsigned seed) { next = seed; } 到目前为止,我已经收集了以下内容: -在我的系统上sizeof(unsigned) = 4((32位无符号int的提示) -它可以用作将另一种类型转换为无符号版本的简写: signed long int i = -42; printf("%u\n", (unsigned)i); 这是ANSI …
90 c  types  unsigned 

5
C ++中的无符号关键字
在C ++中,unsigned关键字是否默认为特定数据类型?我正在尝试为原型的类编写一个函数: unsigned Rotate(unsigned object, int count) 但是我真的不明白是什么unsigned意思。不应该是这样unsigned int吗?
87 c++  unsigned 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.