首页 > 技术文章 > 为嘛 char 类型的范围为 -128~127

jgf4536558 2021-12-20 22:37 原文

char 类型占用1字节(byte),8 bit 位。按道理可以表示 28 = 256 个数。

但是对于有符号整数,二进制的最高位表示正负,不表示数值,最高位为 0 时表示正数,为 1 时表示负数。

那么 8 bit 位可以表示的数为 -27 ~ 27  即 -127 ~ -0  和 0 ~ 127 共 256个数。这里多了一个 -0 于是就把 -0 表示成了 -128 。

 

相关算法

二进制转十进制: 1111 1111 = 1*2^7 + 1*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0 = 255   二进制每一位的数值乘以它的位权(2^(n-1),n为自右向左的位),再相加。

十进制转二进制:31 = 11111  短除法计算取余数。

 

名称解释

原码:直接用最高位表示符号位的叫做原码
反码:反码是原码除最高位其余位取反
补码:整数的补码是其本身,负数的补码为其反码加一

 

https://blog.csdn.net/zy986718042/article/details/71699079

 

推荐阅读