标签: signed

如何确定Python变量的类型?

如何查看变量的类型,无论是无符号32位,带符号16位等等?

我该如何看待它?

python unsigned signed types 16-bit

1437
推荐指数
18
解决办法
233万
查看次数

对std :: vector的迭代:unsigned vs signed index变量

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

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

for (unsigned i=0; i < polygon.size(); i++) {
    sum += polygon[i];
}
Run Code Online (Sandbox Code Playgroud)

还有这个:

for (int i=0; i < polygon.size(); i++) {
    sum += polygon[i];
}
Run Code Online (Sandbox Code Playgroud)

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

我是C++世界的新手,所以unsigned变量对我来说有点可怕,我知道unsigned如果使用不正确,变量会很危险,所以 - 这是正确的吗?

c++ unsigned signed stl

452
推荐指数
10
解决办法
75万
查看次数

签名与无符号整数

我是否正确地说有符号和无符号整数之间的区别是:

  1. 无符号可以保持较大的正值,而不是负值.
  2. 无符号使用前导位作为值的一部分,而带符号版本使用最左侧位来标识数字是正数还是负数.
  3. 有符号整数可以包含正数和负数.

还有其他差异吗?

language-agnostic unsigned signed integer

378
推荐指数
11
解决办法
35万
查看次数

为什么0 <-0x80000000?

我有一个简单的程序:

#include <stdio.h>

#define INT32_MIN        (-0x80000000)

int main(void) 
{
    long long bal = 0;

    if(bal < INT32_MIN )
    {
        printf("Failed!!!");
    }
    else
    {
        printf("Success!!!");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

条件if(bal < INT32_MIN )总是如此.这怎么可能?

如果我将宏更改为:

#define INT32_MIN        (-2147483648L)
Run Code Online (Sandbox Code Playgroud)

有谁可以指出这个问题?

c signed numeric-conversion numeric-limits

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

~x + ~y ==〜(x + y)总是假的?

此代码是否总是评估为false?这两个变量都是两个补码签名的整数.

~x + ~y == ~(x + y)
Run Code Online (Sandbox Code Playgroud)

我觉得应该有一些数字满足条件.我试过测试之间的数字-5000,5000但从未达到平等.有没有办法建立一个方程来找到条件的解?

将一个换成另一个导致我的程序中的一个阴险的错误?

c signed bit-manipulation twos-complement

153
推荐指数
9
解决办法
8123
查看次数

char默认是签名还是未签名?

在"C的完整参考"一书中,提到char默认情况下是无符号的.

但我试图用GCC和Visual Studio验证这一点.它默认签名.

哪一个是正确的?

c signed types char

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

C++将十六进制字符串转换为有符号整数

我想在C++中将十六进制字符串转换为32位有符号整数.

因此,例如,我有十六进制字符串"fffefffe".二进制表示形式为11111111111111101111111111111110.有符号整数表示形式为:-65538.

如何在C++中进行此转换?这也需要适用于非负数.例如,十六进制字符串"0000000A",二进制为00000000000000000000000000001010,十进制为10.

c++ hex signed integer

127
推荐指数
7
解决办法
31万
查看次数

"int"和"uint"/"long"和"ulong"有什么区别?

我知道intlong(32位和64位数字),但是什么uintulong

c# unsigned signed types integer

99
推荐指数
4
解决办法
15万
查看次数

签名/未签名比较

我试图理解为什么以下代码不会在指定的位置发出警告.

//from limits.h
#define UINT_MAX 0xffffffff /* maximum unsigned int value */
#define INT_MAX  2147483647 /* maximum (signed) int value */
            /* = 0x7fffffff */

int a = INT_MAX;
//_int64 a = INT_MAX; // makes all warnings go away
unsigned int b = UINT_MAX;
bool c = false;

if(a < b) // warning C4018: '<' : signed/unsigned mismatch
    c = true;
if(a > b) // warning C4018: '<' : signed/unsigned mismatch
    c = true;
if(a <= b) // warning C4018: …
Run Code Online (Sandbox Code Playgroud)

c++ comparison unsigned signed visual-studio-2005

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

应该使用size_t或ssize_t

在我的代码中,我不使用int或unsigned int.我只使用size_t或ssize_t进行移植.例如:

typedef size_t intc;    // (instead of unsigned int)
typedef ssize_t uintc;  // (instead of int)
Run Code Online (Sandbox Code Playgroud)

因为strlen,string,vector...全部使用size_t,所以我通常使用size_t.我只会ssize_t在它可能是负面时使用.

但我发现:

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

"C++编程语言 "一书中.

所以我很困惑.我错了吗?为什么STL不遵守书中的建议?

c++ unsigned signed size-t

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