为什么int数值是负数
时间: 2023-06-27 21:07:49 浏览: 188
解决时间戳long转换int溢出(即转换值为负数) long转int
当一个 int 类型的数值超出了其所能表示的范围时,会发生溢出。溢出后,该数值会被截断,并被解释成另一个数值,这个数值可能是负数,也可能是正数。
在计算机中,int 类型通常被实现为二进制补码形式,其中最高位表示符号位,0 表示正数,1 表示负数。当一个 int 类型数值溢出时,其最高位可能会被设置为 1,导致这个数值变成负数。
例如,如果一个 int 类型的变量可表示范围是 -128 到 127,而当它的值为 128 时发生了溢出,那么这个变量的值就会变成 -128。这是因为 128 的二进制补码表示为 10000000,最高位为 1,表示负数。而 -128 的二进制补码也是 10000000,因此这个变量的值被解释为 -128。
阅读全文