基础知识点:

关于C语言整数取值范围偶尔性犯迷糊,于是整理了下方法,不再当一个糊涂虫。

n位无符号整数,取值范围:

0    ~     ( 2^n - 1 )

n位有符号整数,取值范围:

- (2^(n-1))     ~      + (2^(n-1) - 1)

涉及到反码,补码知识,示例中说明;

示例:

8位无符号整数,取值范围(0000 0000-1111 1111):0 ~ 255     (这个毫无异议)

8位有符号整数,取值范围:-128 ~ +127      (为什么不是 -127 ~ +127,这个问题曾经也困惑一段时间)

先看二进制表示范围:1111 1111(-127) ...,1000 0001(-1) , 1000 0000(-0) , 0000 0000(+0) ... 0111 1111(+127)

可以看出中间有-0 和 +0,而计算机统一用补码来表示和存储数值,正数的补码和原码相同,负数的补码是原码取反码后加1;

反码范围:负数部分1000 0000 ... ,1111 1110 , 1111 111,正数部分, 0000 0000 ...  0111 111

补码范围:负数部分1000 0001 ... , 1111 1111 , 1 0000 0000 ,正数部分,0000 0000 ... 0111 1111

显而易见1000 0000(-0)转换后(1 0000 0000)是不对的,出现溢出丢失1000 0000,关键就是在这里,先看一下补码-128的原码是什么:

补码转换成原码过程:补码数值取绝对值转换成二进制,所有位取反,最后加1

-128 -》128-》1000 0000 -》0111 1111 -》 1000 0000

所以可以看出补码-128的原码就是1000 0000(-0)

所以有符号8位二进制取值范围是:-128~+127(1000 000,1111 1111 ... 1000 0001,0000 0000 ... 0111 1111)即:-2^(n-1)  ~   +(2^(n-1) - 1)

参考链接:http://wenku.baidu.com/link?url=7NiwLK7jBQV_kEdVkY8Xfkkbj29NPUY_S-0i6A-YSl1Vpq0D5Ve7kyUtTSMTEYt4zeIkVMlnRrlI7icY8x7DfhGzvXzvVy-1v6Zca34KRjO

补码:原码取反码后加1(符号位不变,其他位取反))规则引入就解决了这个问题,

C语言之有符号无符号整数取值范围相关推荐

  1. c语言 无符号 范围,C语言之有符号无符号整数取值范围

    基础知识点: 关于C语言整数取值范围偶尔性犯迷糊,于是整理了下方法,不再当一个糊涂虫. n位无符号整数,取值范围: 0    ~     ( 2^n - 1 ) n位有符号整数,取值范围: - (2^ ...

  2. 在计算机中1byte有符号整数,在计算机中1BYTE无符号整数 有符号整数取值范围 是什么意思.......

    意为在二进制的条件下,1Byte=8bit,1BYTE有符号取值范围是负1111111到正1111111,在有符号规则下,第一位0和1代表数字的正负. 1Byte=8bit,二进制下,无符号整数取值范 ...

  3. C语言中不同类型的取值范围

    C语言中的不同类型的取值范围 前言 C语言中,我们知道最基本的数据类型有int整型,float和double浮点型,char字符型,在计算机里,他们的取值并不是任意和无限的,都有相应的取值范围,那么计 ...

  4. c语言int四个字节取值范围,c语言有符号int取值范围

    结论,取值范围是-2^31-2^31-1(十六进制为0x80000000-0x7fffffff).因为0既不是正数也不是负数,+0是0,-0是最小的负数(-最大正数-1),所以负数的取值范围比正数多一 ...

  5. C语言取小于自身的最大整数,C语言整数类型(含取值范围和长度)

    C语言支持 5 种带符号的整数类型.其中大多数整数类型具有多个同义词,见表1.表1:带符号的标准整数类型类型同义词 signed char intsigned, signed int shortsho ...

  6. c语言int四个字节取值范围,int的取值范围怎么算

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. int的意思是基本整型,计算取值范围: 1.当字节数为2时,取值范围为-32768到32767. 2.当字节数为4时,取值范围为负 ...

  7. c语言case多语句的取值,Switch Case语句中多个值匹配同一个代码块的写法

    C#+JQuery+.Ashx+百度Echarts实现全国省市地图和饼状图动态数据图形报表的统计 在目前的一个项目中,需要用到报表表现数据,这些数据有多个维度,需要同时表现出来,同时可能会有大量数据呈 ...

  8. 用C#语言做的一个RGB取值器

    我第一次在CSDN上写博客,对这个编辑界面不是很熟悉,现在是晚上10点,坐在电脑前脚冷,就不花时间去熟悉这个编辑器了.随便写写,文档格式不对,影响阅读的地方还请见谅. 前一段时间突然对C#起了兴趣,于 ...

  9. C语言整数的取值范围

    文章目录 1.整数的取值范围 2.获取视频教程 3.版权声明 整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言使用int关键字来定义整数变量(int是 integer 的简写). 在定 ...

最新文章

  1. Android View框架的measure机制
  2. Java方法的引用(打造Lambda表达式的升级版)
  3. php 文件查找类,PHP类搜索定位目录树的具体实现方式解析
  4. Spring实战 MethodInvokingJobDetailFactoryBean使用与分析
  5. 包治百病 | 如何将一个.NET Core类库发布到NuGet
  6. C++ 重载强制类型转换运算符
  7. 继承中的复制构造、赋值、析构、重载
  8. 【英语学习】【WOTD】links 释义/词源/示例
  9. [转载] opencv-python:13_图像噪声(噪声的概念、椒盐噪声、高斯噪声、使用python给图像添加噪声)
  10. 黑马Java微服务十次方项目不加密视频
  11. 敏捷软件开发与极限编程
  12. 做数据迁移差点累死的程序员有话要说----数据迁移经验分享
  13. linux yum 五笔输入法,CentOS 7 安装五笔输入法
  14. matlab 排序 cell,MATLAB中对cell数组排序
  15. 有个人在偷偷的爱着你
  16. raspberry pi_Raspberry Pi入门指南
  17. 对话主线科技CEO张天雷:完成A轮融资,自动驾驶战略、战术全透视
  18. (转) 阿拉贡的故事
  19. es入门 和 dsl语法部分讲解
  20. 盗墓小说和西高穴 真真假假曹操墓

热门文章

  1. UCOSIII 任务管理(中)
  2. python字符串操作符-python字符串操作
  3. 利用R语言进行线性/非线性回归拟合实例(1)
  4. export和import
  5. 网络路由交换 -- 静态路由 和 缺省路由
  6. 无法加载操作系统,原因是关键系统驱动驱动程序丢失或包含错误 kisboot.sys
  7. 常用电机驱动芯片的对比分析
  8. 高德地图 key 和 安全密钥 的使用
  9. matlab元胞自动机学风演化,土建學院研究生培养方案调研报告.docx
  10. ie浏览器调用本地文件无反应_win7 ie浏览器打不开本地htm文件