当前位置: 代码迷 >> C语言 >> 关于C的问题
  详细解决方案

关于C的问题

热度:201   发布时间:2006-03-11 01:38:00.0
关于C的问题
问题一:有符号的基本类型的取值范围是-32768~32767即-2的15次方~2的15次方减1。。我不明白为什么要减去1。问题二:一个字节是8位,为什么要规定为八位呢?

----------------解决方案--------------------------------------------------------

(1111)B=? = 2^3+2^2+2^1+2^0=??=2^4 -1 第一个问题明白了?

有符号基本整型 为2字节(不一定) 共16位,最高位是符号位,余下15位数值位,所以…………


----------------解决方案--------------------------------------------------------

第二个问题 估计是权衡利弊后这样规定的(个人猜测)


----------------解决方案--------------------------------------------------------

第一个问题:有符号基本类型的范围大小和无符号的范围大小是一样,但有符号类型中间包含了'0'这个数,所以要减一;
第二个问题:字节的大小是由人来决定的,根据人平常所需要的范围来决定,字节大小完全可以由人来改变.如果一个字节8位这个范围经常不能满足需要,那么我想一个字节可能会被改成更大位数.


----------------解决方案--------------------------------------------------------

同意楼上所说的第一个问题,但小弟认为第二个问题更主要取决于目前硬件水平的限制,随着硬件技术的发展,完全可以做出能负担一个字节16甚至32位带来的巨大开销的处理器和内存储器


----------------解决方案--------------------------------------------------------
第二个问题我估计这坛子上没人能给个准确答案吧!!!
----------------解决方案--------------------------------------------------------
没得解释的  
----------------解决方案--------------------------------------------------------
haishanglang
我觉得把内存单元做大是没有必要和好处的,因为如果你要16位的那只要分配两个8位的单元就可以,但如果你做到16位而只用到5位6位,那就造成了很大的浪费.

----------------解决方案--------------------------------------------------------
那个东西用不着你去理解
你要是想理解的话先去 理解1+1=2
----------------解决方案--------------------------------------------------------
  相关解决方案