



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言中关于char类型的溢出下的%d(u)型输出摘要:本调试内容均在Turboc2.0环境下运行过。本机器int 为2字节,char型为1字节,char有符号时表示的整型范围是-128127。需要注意的是:整型数据在内存中是以补码形式存储的。另外如果按%d输出,那么补码中最高位的1就变成符号位(重要)了,1代表负数,而负数是以补码存放的,转换成原码输出,%u而%u是无符号输出,最高那一位不当作符号位(同等重要)。注意文中分段 第一部分(存储形式)Case1: char为有符号型时(前8位写满倒数第8位的符号位) Case2:char为无符号型时(前8位写满0) 第二部分Case1:当以%d输出时,有两种方法: 法1:如上表char型数据在内存中的表示形式,%d依据补码进行转换输出:例1: char a=472; printf(“%dn”,a); /结果为 -40例2: unsigned char a=472; printf(“%dn”,a); /结果为 216 依然要注意: unsigned char a=-150; printf(“%d,”,a); printf(%c,a); /结果为 106,j 就是说输出%c时截取存储时的低八位就行。 【补充的深层理解】 例3: char a=128; printf(“%dn”,a-3); /结果为 -131 解释:可以看出当以%d输出时,是 a的存储 1111 1111 1000 0000 + 1111 1111 1111 1101 (-3的补码) = 1111 1111 0111 1101 故为 - 131 例4 : char a=128; printf(“%cn”,a-3); /结果为 (125对应的符号为 ) 解释:可以看出当以%c输出时,是 以a的存储低字节 1000 0000 + 1111 1101 (-3的补码) = 0111 0011 故为125法2:注意:一个整型类型的变量,用任何一个超过表示范围的整数初始化,得到的值为用该整数范围作模运算后的值。 根据上图,如上例1,结果为472-2*256(模)= - 40;(为何-40,要在有符号的-128127内)根据上图,如上例2,结果为472-256(模)=216;(同理,要在0255内)*延伸:int a=42896;printf(“%d”,a);/结果为 42896-65536(模)= - 22640(在范围内)Case2:当以%u输出时,只有一种方法:如上表char型数据在内存中的表示形式,%u依据补码进行直接输出:例5: char a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高新技术厂房股权转让与区域经济转型升级合同
- 广告位租赁合同模板
- 智慧水利实践及未来展望
- 大教学论教育思想
- 家庭保洁培训
- 酒店前台礼仪礼节培训
- 幼儿园走失事件应对策略
- 健康领域核心经验培训
- 红领巾队教育体系构建
- 幼儿园手足口病培训课件
- GB/T 17626.18-2016电磁兼容试验和测量技术阻尼振荡波抗扰度试验
- SDS汽油安全技术说明书
- 六年级科学上册教学计划
- 人教版数学六年级下册期末测试卷及参考答案
- GeneralEnglish-入学测试(剑桥五级)附有答案
- 会议管理系统的分析与设计
- JJF(建材)110-2019水泥雷氏夹膨胀测定仪校准规范-(高清现行)
- 省级土壤样品库实施方案
- 河南POCT试剂项目投资计划书(模板)
- 2016-2017学年广西桂林市八年级(下)期末数学试卷
- 吊装作业安全规范
评论
0/150
提交评论