1 .在c语言中,int取值的范围16比特指的是什么?16比特
计算机用二进制数表示数值。 最小单位为位(bit ),可以存储0或1。 16位意味着有16个位存储0或1。 其中,左边的第一位是符号位,0表示),1表示-。
2 .其中16位与-32768~ 32767有什么关系?
此处的-32768~ 32767是指以16位存储一个int值的可取范围。 int是integer (整数)的缩写,int型的值必须是整数,可以是正整数、负整数或0。
3.16位是指32767用二进制表示时有16位数字吗
否,16位表示32767是01111111111111111111110000000000000111111111111111111111111111000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111
扩展:关于为什么16位int值的可取范围为-32768~ 32767。
将二进制数转换为十进制数,从右向左计数。 第一位表示2的0次方,第二位表示2的1次方。 这样,乘以与各位数对应的位的值进行加法运算就可以得到对应的数值。 例如1011为1*(2^0)1* )2^1)0* )2^2)1* )2^3)=1 2 0 8=11。
计算机表示的16位正数范围从0000000000000000001到01111111111。 (注意)计算机显示时,最左边为符号位。 )
即正的1*(2^0)至1* )2^0)1* )2)……1* ) )2^14 )=) (2^ 15 )-1
也就是1到1~ 32767。
负数范围需要知道如何在计算机内部表示负数,“2的补数”。 具体方法分为两个阶段。
第一步,每个二进制位都取相反的值,0变为1,1变为0。
在第二步中,将上一步中获得的值加1。
例如,要表示16位的-1,可以将1个即0000000000000000001反过来变成1111111111111111111111111111111,再将1个即1111111111111111表示为-1。
那么,要知道计算机所表示的负数的绝对值,就必须按照上述“2的补数”规则对该负数进行反处理。 因此,可被表示为16个比特的最小负数,即,已编码比特为1,所有剩馀为0,即1000000000000。
(在这里,很难理解为什么符号为1,之后全部为0,主要是进行逆处理,为了得到最小的负数,尽量使最左边位置的2^15位的值为1。 )
首先,1000000000000000 (处理时,这是二进制数字,1不再是符号。 )减去1得到0111111111111。
在第二步中,取反过来,变成1000000000000000,即1*2^15。
综上所述,16位的int取值的范围为1000000000000到0111111111即-2^15 ()2^15 )-1,-32768 ) 32767。