- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
讲义第六章.ppt
?整型与字符型输入/输出转换 例 main() {int i; char c; i=a;c=97; printf(%c,%d\n,c,c); printf(%c,%d\n,i,i); } 输出 a,97 a,97 ?整型与字符型互换运算 例 main() {char c1,c2; c1=a;c2=b; c1=c1-32; c2=c2-32; printf(%c %c\n,c1,c2); } 输出 A B 解释 A,a的ASCII码分别为 65、97, 两者之差为32,则 大写字母=小写字母-32 小写字母=大写字母+32 所以 B=b-32 或 B=b-(a-A) 同理 把数字字符c转成数字 c-0 如c=5 5的ASCII码 53 0的ASCII码 48 53-48---5 ?字符存储同int,则存储单元的最高位应是符号位 例 字符 十进制 八进制 二进制 按%d输出 a 97 141 97 ■ 254 376 -2 (补码 解释 由于存储单元的最高位是1,表示为负数,则按补码输出 ASCII为128~255之间的字符均存在此问题 例 main() { char c; c=\376; printf(%d\n,c); } 输出 -2 解决办法使用 unsigned char 定义字符变量 例 main() { unsigned char c; c=\376; printf(%d\n,c); } 输出 254 §6.4 类型转换 不同类型数据的混合运算,由于类型数据存储形式不一样,必须转换为同一类型,才能运算。 6.4.1 自动类型转换 (1)非赋值运算的类型转换 水平方向:自动 垂直方向:低 ? 高 高 double ←float ↑ long ↑ unsigned ← unsigned short ↑ 低 int ←char,short 例 int i; float f; double d; long e; 10 + a + i * f - d / e int double double double double (2)赋值运算的类型转换 变量 = 表达式 当表达式的类型与被赋值的变量不一致时,表达式的值类型自动制转成变量的类型 double x; x = 1; x = 1.0 short a = 1000; char b = A; long c; c = a + b; c = 1065 int ai; ai = 2.56; ai = 2 int bi; bi = 0; bi = ? printf(“%x”,bi); vc: tc: 5678 6.4.2 强制类型转换 对表达式的值强制转换 格式 (类型关键字) (表达式) 例 (double) a (int) (x+y) (float) (5%3) (int) (10+ a +i*f-d/e) 注 ?括号用法 (int) x+y 仅对x 有效 ?强制转换仅对表达式的值,原变量的类型不改变 ?将实型数强制转换成整型,即为取整 §6.5 表达式 表达式:用运算符将运算对象及括弧按语法规则连接起来的式子 6.5.1 算术表达式 + - 正 负 单目运算 2级
文档评论(0)