爱问知识人 爱问教育 医院库

为什么C语言中的整型取值范围是--32768~32767,是按什么规则规定,推理的?

首页

为什么C语言中的整型取值范围是--32768~32767,是按什么规则规定,推理的?


        

提交回答

全部答案

    2018-07-28 01:57:07
  •   整型的宽度是一个字,也就是2个字节,16个二进制位,最高一位二进制位用来表示符号(正或负),那么剩下的15位来表示数值。 

    01111111 11111111是32767,最大的正整数
    00000000 00000001是1
    00000000 00000000是0
    11111111 11111111是-1(不是-32767)
    10000000 00000001是-32767(不是-1)
    10000000 00000000是-32768(不是-0),最小的负整数

    计算机表示数主要从运算方式的一致性来考虑。
      
    比如00000000 00000001表示1很好理解,但是11111111 11111111为什么是-1呢?
    按照二进制加法
    11111111 11111111 00000000 00000001= 1 00000000 00000000
    结果超出了整型的宽度,溢出部分被忽略,最后的计算机结果是00000000 00000000
    那么换成十进制,? 1=0,所以11111111 11111111表示成十进制就是-1。
      

    一***

    2018-07-28 01:57:07

类似问题

换一换

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):