计算机教材中为什么int类型范围是-32768~32767呢

xiaoxiao2021-02-28  43

整型在教材里是占用两个字节来存储的,每个字节8位,也就是16位的2进制(从2^0~2^15),大家知道这样一个2进制数总是对应着一个正数。

但是要表示正数和负数该怎么办,聪明的科学家在限制的2进制数位数的前提下采取了补码(算法及详细见补码)的形式来存储负数。

第一位是符号位,也就是用它来表明这个数的符号(正数:0 负数:1)所以int型的最大正数为0111111111111111(15个1),(二进制中较高位总等于其所有低位取1再加1)因此,后面15位连续取1,就等于1000000000000000-1=2^15-1=32768-1=32767

最小负数:1000000000000000,按照补码的运算(符号不变,其他位取反再加1),11111111111111+1(符号位舍去进位)=-32768,这样也解释了为什么最大正数与最小负数的绝对值差1。

转载请注明原文地址: https://www.6miu.com/read-2623741.html

最新回复(0)