网站大量收购闲置独家精品文档,联系QQ:2885784924

C语言程序设计教程-电子教案第10章电子教案:用户定制数据类型.ppt

C语言程序设计教程-电子教案第10章电子教案:用户定制数据类型.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共46页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

5.位左移运算符“”使用格式如下:操作数位数功能是:将一个操作数按指定的位数左移。左移时,从左边移出的高位部分被丢弃,右边空出的低位部分补0。【例10-6】写出下面程序的运行结果。#includestdio.hvoidmain(){ inta=3,b,c,d; b=a1; c=a2; d=a3; printf(a=%d,b=%d,c=%d,d=%d\n,a,b,c,d);}a=3,b=6,c=12,d=246.位右移运算符“”格式如下:操作数位数将一个操作数按指定的位数右移。右移时,从右边移出的低位部分被丢弃,高位处理如下:(1)若操作数是无符号的,右移时,高位补0。(2)若操作数是有符号的,右移时,在高位补符号位,即正数补0,负数补1。【例10-7】写出下面程序的运行结果。#includestdio.hvoidmain(){ inta=9,b,c,d; b=a1; c=a2; d=a3; printf(a=%d,b=%d,c=%d,d=%d\n,a,b,c,d);}a=9,b=4,c=2,d=17.位赋值运算符赋值运算符:=、|=、^=、=、=例如:a=ab; 可以写成 a=b;【例10?8】编程实现二进制IP地址与点分十进制IP地址之间的转换,要求程序的可移植性强。二进制与十进制IP地址的转换:【编程思路】(1)根据IP地址的转换规则,采用共用体:unionipaddress{ unsignedcharaddr[4]; //存储十进制的IP地址 unsignedintval; //存储二进制的IP地址};(2)为了提高程序的可移植性,将unsignedint重命名:typedefunsignedintuint_32;unionipaddress{ unsignedcharaddr[4]; //存储十进制的IP地址 uint_32val; //存储二进制的IP地址};#includestdio.htypedefunsignedintuint_32;unionipaddress{ unsignedcharaddr[4]; //存储十进制的IP地址 uint_32val; //存储32位二进制的IP地址}ip;voidDectoBin(); //函数声明voidBintoDec(); //函数声明voidmain(){DectoBin(); //十进制IP地址转换成二进制IP地址 BintoDec(); //二进制IP地址转换成十进制IP地址}voidDectoBin(){ intb3,b2,b1,b0,i; printf(请输入一个点分十进制IP地址:); scanf(%d.%d.%d.%d,b3,b2,b1,b0); ip.addr[3]=b3; ip.addr[2]=b2; ip.addr[1]=b1; ip.addr[0]=b0; printf(对应的二进制IP地址为:); for(i=31;i=0;i--) printf(%d,((1i)ip.val)i);//输出1或0 printf(\n);}voidBintoDec(){ inti; ip.val=0; printf(请输入一个32位的二进制IP地址:); for(i=31;i=0;i--) { intk; scanf(%1d,k); //从键盘读一位二进制数到k中 ip.val=(ki)|ip.val;//将该二进制数并入IP地址中 } printf(对应的点分十进制IP地址为:); printf(%d.%d.%d.%d\n,ip.addr[3],ip.addr[2],ip.addr[1],ip.addr[0]);}本章小结1.共用体与结构体类似,但共用体允许不同的成员共占同一块内存空间。2.枚举类型用于变量只能取有限几个值的情况,采用枚举类型可以提高程序的可读性。(3)typedef只是给已有的数据类型起了一个别名,它可以提高程序的可读性和可移植性。(4)位段和位运算是以二进制位为单位进行处理的,在编写计算机控制程序时经常用到。**10.1共用体类型10.1.1共用体类型的定义共用体与结构体类似,也由多个数据成员组成,并且也是由用户根据实际需要自己定义的数据类型。共用体类型的定义格式如下: union共用体名 { 类型说明符成员名1; 类型说明符

文档评论(0)

yzs890305 + 关注
实名认证
内容提供者

计算机二级持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年11月02日上传了计算机二级

1亿VIP精品文档

相关文档