int 取值范围

int 取值范围

参考:

https://zhidao.baidu.com/question/16560454.html

https://blog.csdn.net/whizz21926/article/details/3125869?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param

原码/反码/补码

原码: 最高位为符号位(0表示正, 1表示负)

反码: 对于一个带符号的数来说, 正数的反码与其原码相同, 负数的反码为其原码除符号位以外的各位取反

补码: 正数的补码与其原码相同, 负数的补码为其反码在最低为加1

计算机中采用补码形式存储数据, 0的补码表示只有一种

int

C#int占4个字节, 32位

最大0111 1111 1111 1111 ... == 2^31 - 1

最小1111 1111 1111 1111 ... == - (2^31 - 1)

转为补码为1000 0000 0000 ... 0001, 但是补码中会比原码中多出一个编码,

这个编码就是1000 0000 0000 ... 0000,

因为任何一个原码都不可能转化为补码时变为1000 0000 0000 ... 0000, 取反加1溢出

所以人们规定这个补码就为- (2^31 - 1) - 1 == -2^31

原文地址:https://www.cnblogs.com/kikochz/p/13479452.html