一、首先char类型的取值范围是-128~127,对于127的二进制表示是:01111111,-127的二进制表示是:11111111,那么问题来了:-128是怎么来的?1、当charch=128或c.

一、首先char类型的取值范围是-128~127,对于127的二进制表示是:0111 1111,

-127的二进制表示是:1111 1111,那么问题来了:-128是怎么来的?

1、当 char ch = 128 或 ch = -0时,则二进制为 1000 0000

计算机内存中都是按负数来处理的

当求补码的时候会溢出,则需要先进行位扩展,变为 1 1000 0000

然后,反码:1 0111 1111

补码:1 1000 0000  ( -128 )

由于char 为8个字节,截取后八位,变为 1000 0000 ,则128 或 -0在内存中为 -128

2、当 char ch = -129时, 则二进制为 1 1000 0001

反码:1 0111 1110

补码:1 0111 1111

截取后八位,变为 0111 1111 ( 127);

例如:char ch = 2000;最终计算机所读到的数是多少呢?

2000的二进制表示是:111 1101 0000,,截取八位为:1101 0000,最高位是符号位,计算机认为它是一个负数,而负数是以补码的方式存储的,所以,通过取反、加1后变为:1011 0000,这样ch = -48。

c语言char类型溢出,C语言中数据溢出的问题---以char类型为例相关推荐

  1. c语言变量名必须用小写 常量用大写,day02 -C语言 常量 变量 数据类型 进制转换 数据溢出...

    常量 - 不会变化的数据 "hello" 'A' 10 3.14 #define PI 3.14 //采用宏定义的方法 定义一个常量 const int a = 10; 求圆的面积 ...

  2. 如何用Python语言编写源程序,读取Excel中数据,并画出柱状图?

    现在,随着计算机的普及,以及数据量的增多,对大型数据的分析已经是我们手算不能解决的了,必须借助计算机:那么,学习计算机其实也和我们学习中文.英文一样,要学习他们的写作规则,掌握其中原理.所以,我们首先 ...

  3. char型变量声明java_java中变量的声明和变量的类型

    1.变量的概念: 内存中的一个存储区域该区域有自己的名称(变量名)和类型(数据类型)Java中每个变量必须先声明,后使用该区域的数据可以在同一类型范围内不断变化 使用变量注意: 变量的作用域:一对{ ...

  4. python中文件的存储类型_关于python中数据存储大总结,涵盖文件系统和数据库存储两种方法-文件系统类型...

    存储数据是python必不可免的话题,数据的存储类型也多种多样,文件系统存储(.txt..csv..json.多媒体存储).关系型数据库存储(MySQL等).非关系型数据库存储(MongoDB).今天 ...

  5. java溢出怎么处理_java数据溢出怎么处理?

    publicstaticvoidmain(String[]args){//TODO自动生成的方法存根Scannersc=newScanner(System.in);Stringaa=sc.nextLi ...

  6. c语言中文网_在C语言中使用中文字符

    大部分C语言教材对中文字符的处理讳莫如深,甚至只字不提,导致很多初学者认为C语言只能处理英文,而不支持中文.其实C语言是一门全球化的编程语言,它支持世界上任何一个国家的语言文化,包括中文.日语.韩语等 ...

  7. 用c语言编程牛顿环实验,C语言下迈克耳孙干涉仪测量空气折射率的实验探究.pdf...

    C语言下迈克耳孙干涉仪测量空气折射率的实验探究.pdf 语言下迈克耳孙干涉仪测量空气折射率的实验探究 张之韬 李雪梅 ( 浙江海洋大学数理与信息学院 浙江 舟山 ) ( 收稿日期 ) 摘 要 通过压强 ...

  8. c语言数组字节偏移,C语言数组注意问题

    inta[10]; 数组名是常量不能为左值(如:a=5:) 不要认为数组元素a[i]代表数组元素的值,它代表数组元素本身,可作为左值使用. 为指针进行初始化的字符串是只读的 (如:char*p=&qu ...

  9. JAVA中char占用多少字节_Java中char占用几个字节

    https://www.cnblogs.com/louiswong/p/6062417.html https://www.cnblogs.com/fnlingnzb-learner/p/7272348 ...

最新文章

  1. js_sl 延迟菜单
  2. android studio项目总结,android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)...
  3. caffe配置中的一些问题
  4. nodejs 30行代码 爬豆瓣电影数据
  5. IOS之学习笔记十五(协议和委托的使用)
  6. “AI捡垃圾”上热搜了!46城垃圾分类将投200亿,你怎么看?
  7. python正向切片_使Python切片正常(正/正向+无无+无负索引+在边界内)
  8. python web开发,organization的model设计
  9. Open cup #2
  10. matlab中nc文件,教程合集 | MATLAB文件读写(以nc与txt为例)
  11. 测试库的接收到的数据是否完整(jrtplib为列)
  12. Codeforces Round #466 (Div. 2): E. Cashback(单调队列+DP)
  13. ps 命令的详细功能解析
  14. 重新挂载磁盘mysql重新建表_Linux重新挂载磁盘
  15. Android TV CTS 测试认证汇总
  16. AIDE手机编程初级教程(零基础向) 1.1 认识我的第一个应用
  17. PDF文件转换成excel文件的三种方法
  18. java直播在线人数怎么做_添加抖音直播间在线人数怎么做
  19. C语言习题二:比赛评分系统
  20. chia官方矿池常见问题

热门文章

  1. Linux android studio :'tools.jar' seems to be not in Android Studio classpath.
  2. ListView上移 和下移
  3. vc++ 关于 指针操作
  4. linq Distinct
  5. C#中的Lock锁深入理解
  6. VS中的路径宏:OutDir、ProjectDir、SolutionDir等各种路径的说明
  7. 内网访问不到内网网站问题和不用端口号访问网站问题
  8. C代码中如何调用C++ C++中如何调用C
  9. 剑指offer(12)数值的整数次方
  10. AlexNet 和 VGG-Net的区别