满意答案

lvhelen

2014.11.28

采纳率:40%    等级:9

已帮助:164人

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

如果以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767

最小为1111111111111111=-2的15次方减1=-32767

此时0有两种表示方法,即正0和负0:0000000000000000=1000000000000000=0

所以,二进制原码表示时,范围是-32767~-0和0~32767,因为有两个零的存在,所以不同的数值个数一共只有2的16次方减1个,比16位二进制能够提供的2的16次方个编码少1个。

但是计算机中采用二进制补码存储数据,即正数编码不变,从0000000000000000到0111111111111111依旧表示0到32767,而负数需要把除符号位以后的部分取反加1,即-32767的补码为1000000000000001。

到此,再来看原码的正0和负0:0000000000000000和1000000000000000,补码表示中,前者的补码还是0000000000000000,后者经过非符号位取反加1后,同样变成了0000000000000000,也就是正0和负0在补码系统中的编码是一样的。但是,我们知道,16位二进制数可以表示2的16次方个编码,而在补码中零的编码只有一个,也就是补码中会比原码多一个编码出来,这个编码就是1000000000000000,因为任何一个原码都不可能在转成补码时变成1000000000000000。所以,人为规定1000000000000000这个补码编码为-32768。

所以,补码系统中,范围是-23768~32767。

因此,实际上,二进制的最小数确实是1111111111111111,只是二进制补码的最小值才是1000000000000000,而补码的1111111111111111是二进制值的-1。

20分享举报

c语言为什么是2的15次方,在C语言中为什么int型的取址范围为-2的15次方到2的15次方减1?...相关推荐

  1. 设c语言中 一个int型数据库,最新真实全国二级C选择题真题第1套

    1.下列叙述中正确的是 A.循环队列是顺序存储结构 B.循环队列是链式存储结构 C.循环队列是非线性结构 D.循环队列的插入运算不会发生溢出现象 2.下列叙述中正确的是 A.所有数据结构必须有根结点 ...

  2. 电子科大专科c语言作业1,电子科大15春《C语言(专科)》在线作业试卷.docx

    电子科大 15 春< C 语言(专科)>在线作业 一.单选题(共20 道试题,共100 分.) 1.对于 int*p;inta[];p=a;的合法运算 () a++; p=a;p++; 相 ...

  3. 【历史上的今天】10 月 15 日:FORTRAN 语言正式问世;支付宝诞生第一笔交易;Tcl 语言发明者出生

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 10 月 15 日,在 14 年前的今天,中国网通与中国联通正式合并,缓解此前联通将北方县以下营业厅 ...

  4. 西北工业大学c语言程序设计试题,西北工业大学15春《C语言程序设计》在线作业答案...

    西北工业大学15春<C语言程序设计>在线作业9 t# F4 Z* m* M% N" T- d 试卷总分:100   测试时间:--- u7 j) [/ o# B& [2 ...

  5. c语言左移15位,关于c语言中左移右移运算符的问题

    参照<c与指针>,在c语言中左移时,不论算术左移还是逻辑左移效果都是相同的.而且对于有符号和无符号类型执行相同的操作,即按照二进制位向左左移N位.例如: 1 clude 2 intmain ...

  6. 开涛spring3(5.15.2) - Spring表达式语言 之 5.1 概述 5.2 SpEL基础

    5.1  概述 5.1.1  概述 Spring表达式语言全称为"Spring Expression Language",缩写为"SpEL",类似于Struts ...

  7. 1-5 第一个C语言程序

    一.课前准备 码云/Github:每天写代码.托管开源项目 Github使用教程(b站鹏哥的视频) Xmind思维导图软件(学会善于总结,一单元一总结在导图里) 拒绝做伸手党!!!(先思考,遇到问题不 ...

  8. 联想小新15用什么C语言程序,长处更长 优点更优 联想小新Air 15 2019首测

    原标题:长处更长 优点更优 联想小新Air 15 2019首测 15.6英寸笔记本有以下几点优势:一是屏幕更大,视觉体验更好:二是键盘区可以容纳右侧独立数字键盘,对于经常需要用到数字按键的朋友来说非常 ...

  9. 为备考二级C语言做的代码练习---辅导资料《C语言经典编程282例》--(1)

    因为二级考试的时候用的C语言编译器是VC++6.0 真是日了狗了 用这个编译器 这是我第2个C编译器吧,第一个用的是啊哈C编译器..第二个是VS++6.0 然后在win下用VS2013感觉挺不错的 毕 ...

最新文章

  1. 工业物联网的应用领域与方向
  2. linux php 如何停止,如何关闭linux
  3. VS创建props属性表并在新项目中导入props属性表
  4. oracle中的null 字段,Oracle下的NULL字段
  5. 无人值守的自动 dump(一)
  6. C# 多线程控制 通讯 和切换
  7. golang 接口类型 interface 简介使用
  8. S2SH 第一次整合的经历
  9. 2021年中国主轴修复服务市场趋势报告、技术动态创新及2027年市场预测
  10. 【“计算机科学与技术”专业小白成长系列】Peter Norvig:十年学会编程
  11. magisk卸载内置软件_手把手教你使用ADB卸载手机内置App软件
  12. 阿里云商标注册申请智能、顾问和安心区别及选择攻略
  13. 【程序员节】1024程序员节专属程序员的浪漫
  14. Windows XP SP3版本美化成Vista界面详解
  15. 【年终总结】你好2021,再见2020。
  16. [jQuery学习系列四 ]4-Jquery学习四-事件操作
  17. html源代码资源网,利用HTML源代码,挖掘网络资源
  18. 第三回 利器,我的DHCP
  19. AssetBundle文件结构浅析
  20. 直博清华的元气少女!本科就发表了SCI...

热门文章

  1. sqlserver 主键自动生成32位guid
  2. ACE 开 发 环 境 构 建 笔 记
  3. 安装linux系统后要做的事情
  4. 华为防火墙双机热备(VGMP+HRP)理论+实操!
  5. android notifydatasetchanged 刷新错误,Android中适配器的notifyDataSetChanged()为何有时不刷新...
  6. 弱电控制强电(电子)项目--物联网工厂创业项目(智能家居核心)
  7. MySQL数据库安装和Navicat for MySQL配合使用
  8. Chrome的小恐龙被我“开挂”了,看我如何用一行代码让它拥有不死之身
  9. 电线电缆、电线、网线等的表示方法(规格、型号)电线规格电线网 yjv 电线电缆规格型号表(一)...
  10. matlab连续型随机变量,一维连续型随机变量及其概率密度[精选].ppt