- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据类型转换
各类整数之间的转换
C语言中的数分8位、16位和32位三种。属于8 位数的有:带符号
字符char,无符号字符unsigned char 。属于16位数的有:带符号整
数int,无符号整数unsigned int(或简写为unsigned), 近指针。属
于32位数的有:带符号长整数long,无符号长整数 unsigned long,
远指针。
IBM PC是16位机,基本运算是16位的运算,所以,当8位数和16
位数进行比较或其它运算时,都是首先把8 位数转换成16位数。为了
便于按2的补码法则进行运算,有符号8位数在转换为16位时是在左边
添加8个符号位,无符号8位数则是在左边添加8个0。当由16位转换成
8位时,无论什么情况一律只是简单地裁取低8位,抛掉高8 位。没有
char或usigned char常数。字符常数,像C,是转换为int以后存储
的。当字符转换为其它 16 位数(如近指针)时,是首先把字符转换为
int,然后再进行转换。
16位数与32位数之间的转换也遵守同样的规则。
注意,Turbo C中的输入/输出函数对其参数中的int和unsigned
int不加区分。例如,在printf函数中如果格式说明是%d 则对这两种
类型的参数一律按2 的补码(即按有符号数)进行解释,然后以十进制
形式输出。如果格式说明是%u、%o、%x、%X,则对这两种类型的参数
一律按二进制 (即按无符号数) 进行解释,然后以相应形式输出。在
scanf函数中,仅当输入的字符串中含有负号时,才按2的补码对输入
数进行解释。
还应注意,对于常数,如果不加L,则Turbo C一般按int型处理。
例如,语句printf(%081x,-1L),则会输出ffffffff。如果省略1,
则输出常数的低字,即ffff。如果省略L,则仍会去找1个双字,这个
双字的就是int常数-1,高字内容是不确定的,输出效果将是在4个乱
七八糟的字符之后再跟ffff。
在Turbo C的头文件value.h中,相应于3 个带符号数的最大值,
定义了3个符号常数: #define MAXSHORT 0X7FFF
#define MAXINT 0X7FFF
#define MAXLONG 0X7FFFFFFFL 在Turbo C Tools中,包括3对宏,分别把8位拆成高4位和低4位,
把16位拆成高8位和低8位,把32位拆成高16位和低16位。 uthinyb(char value) utlonyb(char value)
uthibyte(int value) utlobyte(int value)
uthiword(long value) utloword(long valueu)
在Turbo C Tools中,也包括相反的3 个宏,它们把两个4位组成
一个8位,把两个8位组成一个16位,把两个16位组成一个32位。 utnybbyt(HiNyb,LoNyb)
utwdlong(HiWord,Loword)
utbyword(HiByte,LoByte)实数与整数之间的转换
Turbo C中提供了两种实数:float和 double。float 由32 位组
成,由高到低依次是:1个尾数符号位,8个偏码表示的指数位(偏值=
127),23个尾数位。double由64位组成,由高到低依次是:1 个尾数
符号位,11个偏码表示的指数位(偏值=1023), 52个尾数位。通过下
列公式,可以由尾数和指数计算出所代表的实数值: X=±1.尾数*2(指数-偏值) 下列几种情况下,此公式不成立: 指数=000...0且尾数 =00...0,则X=X=±0
指数=000...0且尾数!=00...0,则X=±0.尾数*2(1-偏值)
指数=11....1且尾数 =00...0,则X=±∞
指数=11....1且尾数!=00...0,则X是一个无效数
在Turbo C的头文件value.h中,相应于实数所能达到的最大最,,,,
值,定义了如下几个符号常数: #define MAXFLOAT 3.37E+38
#define MINFLOAT 8.43E-37
#define MAXDOUBLE 1.797693E+308
#define MINDOUBLE 2.225074E-308 实常数是按double格式存放的,如果想按float 格式存放,则必
须加后缀F,如:1.23E+4F。
当把实数强制转换为整数时,采取的是“向零靠拢的算法,如: float值: 65432.6 -65432.6
转换为long; 65432 -65432
转换为unsigned: 65432 104
如果不希望“向零靠拢”,而希望“四舍五入”,则必须由程序员自
己处理。
您可能关注的文档
- 04_Jaa基本语法_条件.ppt
- 4.1第四选择结构的程序设计.ppt
- 第5章C语.ppt
- 汇编实验报汇总.doc
- 自考 C语教程 第四-3章 循环结构程序设计.ppt
- Java 序设计语言.doc
- 心想事成-理暗示.ppt
- C语言知识理.ppt
- ++-- 算符号说明.doc
- 第4章-控结构.ppt
- 2025年曹妃甸职业技术学院单招语文测试模拟题库审定版.docx
- 2025年朔州职业技术学院单招(语文)测试模拟题库必考题.docx
- 2025年桂林信息工程职业学院单招语文测试题库及完整答案1套.docx
- 2025年柳州职业技术学院单招语文测试题库完整.docx
- 2025年杨凌职业技术学院单招(语文)测试模拟题库新版.docx
- 2025年桂林信息工程职业学院单招语文测试模拟题库带答案.docx
- 2025年朝阳师范高等专科学校单招(语文)测试题库必考题.docx
- 2025年朔州陶瓷职业技术学院单招(语文)测试模拟题库有答案.docx
- 2025年曲靖职业技术学院单招语文测试题库及完整答案一套.docx
- 2025年无锡职业技术学院单招(语文)测试模拟题库学生专用.docx
文档评论(0)