python int类型,对比C/C++ int (32bit,有符号,无符号)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26437925/article/details/80506680

python 存储数据是 number,对于整型,不区分 int, byte, long


int n1 = 0x80000000; // 最大负数, -2147483648
int n2 = 0x7fffffff; // 最大正数, 2147483647

printf("%d\n", n1);
printf("%d\n", n2);
printf("%d\n", (n1-1)); // 最大负数减去1变成最大正数
printf("%d\n", (n1) & (n1-1));
n1 = 0x80000000
n2 = 0x7fffffff
print n1 # 2147483648
print n2 # 2147483647

n3 = -2147483648
n4 = 2147483647
print n3
print n4

print (n3 - 1) # -2147483649

n3 = n3 & 0xffffffff # 转换成正数,不受int范围限制的
print n3 # 2147483648
print (n3 - 1) # 2147483647

n5 = -2147483647
n5 = n5 & 0xffffffff # 转换成正数,不受int范围限制的
print n5 # 2147483649
print (n5 - 1) # 2147483648

在求 int 二进制中1的个数的时候 , 如下的操作对于 python 负数 会不适用

n & (n-1)

可以把负数的n转换成为不受int 32bit范围限制的更大的正数

n & 0xffffffff

-2147483648(int范围)和 2147483648(非int范围) 两个数的二进制1的个数相同

猜你喜欢

转载自blog.csdn.net/qq_26437925/article/details/80506680
int