标签: unsigned-integer

为什么Kotlin不支持无符号整数?

我刚刚遇到一种情况,其中无符号整数本来就非常有用(例如,任何负值都没有意义等等).令人惊讶的是,我发现Kotlin不支持无符号整数 - 并且似乎没有其他任何关于为什么(即使我看过).

我错过了什么吗?

types language-design unsigned-integer kotlin

11
推荐指数
3
解决办法
4940
查看次数

什么是UINT_MIN的便携值?

limits.h,有#defines for INT_MAXINT_MIN(以及SHRT_*和LONG_*等等),但仅限于UINT_MAX.

我应该定义UINT_MIN自己吗?是0(正零)便携式价值?

c c++ unsigned-integer

10
推荐指数
3
解决办法
1615
查看次数

如何计算32位无符号整数中的前导零

有谁能告诉我什么是一个有效的算法来计算C编程中32位无符号整数中前导零的数量?

c 32-bit unsigned-integer leading-zero

10
推荐指数
3
解决办法
2万
查看次数

Python:类型和dtypes之间的混淆

假设我输入:

a = uint8(200)
a*2
Run Code Online (Sandbox Code Playgroud)

然后结果是400,并且重铸为uint16类型.

然而:

a = array([200],dtype=uint8)
a*2
Run Code Online (Sandbox Code Playgroud)

结果是

array([144], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)

乘法已经以256为模进行,以确保结果保持在一个字节中.

我对"类型"和"dtypes"感到困惑,其中一个用于优先于另一个.如您所见,类型可能会对输出产生显着影响.

例如,我可以创建单个数量的dtype uint8,以便对该数字的操作将以256为模进行吗?或者,我可以创建一个类型(不是dtype)uint8的数组,以便对它的操作产生超出0-255范围的值吗?

python types numpy unsigned-integer

10
推荐指数
3
解决办法
5110
查看次数

C++ 14是否在unsigned int的填充位上定义了按位运算符的行为?

C++标准

如果C++ 14 实现在a的基础字节中包含填充位unsigned int,那么标准是否指定是否必须在填充位上执行按位运算?

另外,C++ 14标准是否指定相等和关系运算符是否必须忽略填充位?

方针

如果在这个问题上缺乏规范,那么这些运算符在填充位上的预期行为是否存在某种共识?

我在Stack Overflow上找到了相互矛盾的答案.轨道中的亮度竞赛ecatmur说,按位运算符不适用于算术,因为它们应用于所有位(包括填充位),而ChristophBartek Banachewicz表示按位运算符处理整数的逻辑值并忽略填充.

参考

相关的答案:在填充比特的存在(1, 2, 3),在没有明确的C++规范(4).

C++中填充位的定义14 - 第3.9.1节 - 基本类型:

对于窄字符类型,对象表示的所有位都参与值表示.对于无符号窄字符类型,值表示的所有可能位模式表示数字.这些要求不适用于其他类型.

C++中对象表示和值表示的定义14 - §3.9 - 类型:

类型对象的对象表示是由类型对象占据TN个 unsigned char对象的序列T,其中N等于sizeof(T).对象的值表示是保存type值的位集T.对于简单的可复制类型,值表示是对象表示中的一组位,用于确定,该是实现定义的值集的一个离散元素.44

脚注44)意图是C++的内存模型与ISO/IEC 9899编程语言C的内存模型兼容.

C++中按位AND的定义14 - §5.11 - 按位AND运算符:

执行通常的算术转换; 结果是操作数的按位AND功能.运算符仅适用于整数或无范围的枚举操作数.

C++中添加的定义14 …

c++ bitwise-operators unsigned-integer unspecified-behavior c++14

10
推荐指数
1
解决办法
492
查看次数

Javascript中的无符号32位整数

如何在Javascript中模拟没有任何外部依赖性的32位无标记整数?使用x >>> 0x | 0不工作的技巧(对于乘法,它们似乎适用于加法/减法),并且在乘法期间双精度会丢失精度.

例如,尝试乘以2654435769*340573321(mod 2 ^ 32).结果应为1.

这个答案有倍增.加/减/除法怎么样?

这里是 wolfram alpha 的链接,展示了上面的等式.

javascript integer unsigned-integer

9
推荐指数
1
解决办法
7237
查看次数

如何将负 i32 数添加到 usize 变量?

如:

let mut a : usize = 0xFF;
a += -1;  // -1 may be from other variable, so there can't be a -= 1;
println!("{}", a);
Run Code Online (Sandbox Code Playgroud)

输出是:

let mut a : usize = 0xFF;
a += -1;  // -1 may be from other variable, so there can't be a -= 1;
println!("{}", a);
Run Code Online (Sandbox Code Playgroud)

反正?

integer integer-overflow unsigned-integer rust

9
推荐指数
1
解决办法
3311
查看次数

SQL Server 2008 - 无符号整数数据类型

我正在使用SQL SERVER 2008,我在各种表中都有一些INT,SMALLINT字段,而且我知道它们都是0或大于0,即我可以将它们取无符号.

是否有一种创建/使用无符号数据类型的简单方法,或者我必须创建类型 - >生成规则 - >使用创建类型; 如下文所述?

http://www.julian-kuiters.id.au/article.php/sqlserver2005-unsigned-integer

如果这是在SQL中使用Unsigned的唯一方法,那么使用它有什么缺点/缺点吗?

sql sql-server-2008 sqldatatypes unsigned-integer

8
推荐指数
1
解决办法
3万
查看次数

将32位无符号整数(大端)转换为long和back

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

另外,我该如何反过来(即从包含32位无符号整数的long到byte [4])?

java type-conversion endianness unsigned-integer

8
推荐指数
2
解决办法
2万
查看次数

具有无符号Int的QSpinBox用于十六进制输入

这里有很多关于QSpinBox使用int作为其数据类型的限制的问题.通常人们想要显示更大的数字.在我的例子中,我希望能够以十六进制显示无符号的32位整数.这意味着我希望我的范围为[0x0,0xFFFFFFFF].普通QSpinBox可以达到的最大值是0x7FFFFFFF.在这里回答我自己的问题,我提出的解决方案是通过重新实现相关的显示和验证功能,简单地强制int被视为unsigned int.

c++ qt hex unsigned-integer qspinbox

8
推荐指数
1
解决办法
4460
查看次数