本文谈论的都为有符号数。

这得从二进制的原码说起:

二进制原码最大为0111111111111111=215-1=32767

二进制原码最小为1111111111111111=-(215-1)=-32767
正0和负0:0000000000000000=1000000000000000=0
所以,二进制原码表示时,范围是-32767~-0和0~32767,因为有两个零的存在,所以不同的数值个数一共只有216-1个,比16位二进制能够提供的216个编码少1个。

但是计算机中采用二进制补码存储数据。

正数编码不变,从0000000000000000到0111111111111111依旧表示0到32767

负数需要把除符号位以后的部分取反加1,即-32767的补码为1000000000000001。
到此,再来看原码的正0和负0:0000000000000000和1000000000000000,补码表示中,前者的补码还是0000000000000000,后者经过非符号位取反加1后,同样变成了0000000000000000,也就是正0和负0在补码系统中的编码是一样的。但是,我们知道,16位二进制数可以表示216个编码,而在补码中零的编码只有一个,也就是补码中会比原码多一个编码出来,这个编码就是1000000000000000,因为任何一个原码都不可能在转成补码时变成1000000000000000。所以,人为规定1000000000000000这个补码编码为-32768。
所以,补码系统中,范围是-32768~32767
因此,实际上,二进制的最小数确实是1111111111111111,只是二进制补码的最小值才是1000000000000000,而补码的1111111111111111是二进制值的-1。

为什么C语言中int的表示范围是-32768~32767相关推荐

  1. c语言中int的表示范围是-32768~32767!

    这得从二进制的原码说起: 如果以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767 最小为1111111111111111=-2的15次方减1=-32767 ...

  2. 为什么c语言中short的表示范围是-32768~32767

    转自 http://hi.baidu.com/livetodaywell/blog/item/ded3924a9ce62ff983025ceb.html 这得从二进制的原码说起: 如果以最高位为符号位 ...

  3. int在c语言中的作用,C语言中int,Uint,uint16等有什么区别以及用处

    C语言中int,Uint,uint16等有什么区别以及用处.在C中,既然有了int,为什么还要有uint?特别是uint16,uint32等又有什么用?他们有什么区别?" --------- ...

  4. c语言int作用,c语言中int的用法

    C/C++编程语言中,int表示整型变量,是一种数据类型,下面学习啦小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. c语言中int的用法:整型int C 语言提供了很多整数类型(整型), ...

  5. C语言中int、long等类型所占的字节数

    C语言中int.long等类型所占的字节数.实验环境是win10,64位操作系统. #include<stdio.h> int main() {printf("sizeof(in ...

  6. c语言int作用,c语言中int的用法有哪些

    c语言中int的用法有哪些 C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同下面小编给大家整理了c语言中int的用法 ...

  7. c语言中int作用,c语言中int的用法(5页)-原创力文档

    第 第 PAGE 1 页 共 NUMPAGES 1 页 c语言中int的用法 C/C++编程语言中,int表示整型变量,是一种数据类型,下面小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. ...

  8. c语言中int代表什么变量,c语言中int是什么意思

    C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同. 整型变量包括下面几种类型: 1.有符号基本整型,关键字:[sig ...

  9. c语言double类型是几字节,c语言中int long float double 等类型所占字节及输出表示(转)...

    16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 doub ...

最新文章

  1. SaaS平台只是传统管理软件的试衣间
  2. JVM-11虚拟机性能监控与故障处理工具之【JDK的可视化工具-JConsole】
  3. 协同OA对业务和管理进行流程的梳理
  4. 网盘php资料,怎么搜索百度网盘里的资料(php版)
  5. java downloadfile_FileDownload.java:文件下载工具类
  6. python函数定义语法_python 函数基础 定义
  7. Q128:PBRT-V3,“体渲染”积分器的“传播方程”(15.1章节)
  8. 基于HK-2000 OEM的嵌入式Linux开发
  9. 乱码克星:VFP源文件简繁体内码转码器软件
  10. 20_星仔带你学Java之Java常用类
  11. 书籍《图说区块链》读后感
  12. C#(四十二)之线程同步、互锁
  13. 使用Python,OpenCV反转视频
  14. Excel 替换 回车
  15. 轴流风机和离心风机有什么区别?
  16. HTML网页设计: 一 HTML的基本结构
  17. 使用Godaddy的API批量修改域名的NameServers,指向CloudFlare的NS,享受免费的抗DDOS保护!
  18. SpringBoot Actuator
  19. 程序员宅男干货福利!手把手教你获取上千张cosplay小姐姐的美照
  20. java 100天是周几_编写一段程序。使用Java8的日期时间报打印当前日期的后100天是哪一天?星期几?然后,在...

热门文章

  1. avd修改dns方法(android studio 中修改虚拟机DNS)
  2. 一文读懂DEM数字地形“全家桶“(附5m 12.5m 30m 90m DEM下载)
  3. Jmeter断言操作
  4. 两化融合贯标的意义 好处 要求
  5. 红色小圆点消息提示实现
  6. (6)物体6自由度位姿估计主流方法----待完善
  7. Git 常用开源许可证 (证书)
  8. 那些没考上大学的人,后来过的怎样
  9. pgpool mysql_pgpool 简明使用教程
  10. lisp+等高线点线矛盾检查_1∶2000数字线划图质量检查方法研究