重温谭浩强的C语言,,
看了一下位运算, 有一点不解!
计算器存放的是二进制位,一般整数占用二个字节,即16个二制位,最高位是符号位,故
计算机中存放整数的最大位为:1111111111111111 ,转换成10进制为:32767 ,即计算机中
能体现的最大整数为32767,那为何还能定义:.....
int a= 55555555 ;
.....
等等 ,那计算机分配的两个字节如何可以存放大于32767的整数...
望高手点拨....

解决方案 »

  1.   

    计算器,还是计算机?这可不是一个东西呵呵你说的整数占用两个字节,是在16位操作系统中。有符号整数最大值是2的15次方-1,即32767
    32位操作系统中的整数位数是32位,有符号整数最大值是2的31次方-1,所以可以做诸如 int a = 55555555的赋值。
      

  2.   

    是计算机!你是说现在的32位操作系统, 一个字节占有16个二进制位吗?如此说来, win95 是16位的操作系统,其整数只能表示最大值为32767 了吗? 但好像可以表示很大的
    整数位哦...
      

  3.   

    16位 的编译器中int是16位,比如使用tc在dos下编程
    32位的编译器中int是32位,比如使用VC在winndows NT/2000下编程