c语言中整型无符号二进制数的表示问题

c语言中整型无符号二进制数的表示问题

ID:28445017

大小:78.00 KB

页数:5页

时间:2018-12-10

c语言中整型无符号二进制数的表示问题_第1页
c语言中整型无符号二进制数的表示问题_第2页
c语言中整型无符号二进制数的表示问题_第3页
c语言中整型无符号二进制数的表示问题_第4页
c语言中整型无符号二进制数的表示问题_第5页
资源描述:

《c语言中整型无符号二进制数的表示问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C语言中整型无符号二进制数的表示问题摘要文章解决的问题是c语言屮几种不同数制的数值型无符号整型数据,转换成二进制数的方法。【关键词】c语言无符号整型数据二进制数十进制数其它进制数对于C语言中的数值型数据,通常可以方便地表示成多种不同数制。比如十进制数100,表示成八进制数为0144,八进制数以0开头,表示成十六进制数为0x64,十六进制数以0X开头。然而C语言却没有直接的二进制表示办法,这里将讨论,把几种不同数制无符号整型数据,表示成二进制数的方法。另外还讨论了把二进制无符号数表示成十进制的方法。1十进制无符号整数表示成二进制数十进制无符号整数转换为二进制数,采用“除2取余”,余

2、数逆序排列法。具体步骤是:用2整除十进制整数,可以得到一个商Q0和余数D0;再用2去除商Q0,又会得到一个商Q1和余数D1,接着用2去除商Q1,又会得到一个商Q2和余数D2,依此类推,直到商Qn为0时停止,然后把先得到的余数D0作为二进制数的低位有效位,后得到的余数Dn作为二进制数的高位有效位,依次排列起来得到:Dn…D4D3D2D1D0,这个Dn…D4D3D2D1D0就是我们需要的十进制整数转换为二进制数的结果。根据上述原理,我们编写了一个转换函数tcntow(),函数功能是:用户输入一个十进制数,程序自动把它对应的二进制数显示出来。程序代码如下:ftinclude’’stdi

3、o.h’’voidtentow(){inta[32],i二0;longnum;printf("请输入一个十进制无符号整数:〃);scanf(〃%ld",&num);printf("%ld的二进制数为:〃,num);while(num>=l){a[i]=num%2;num二num/2;i++;}for(i=i-l;i>=0;i—){printf("%d",a[i]);}printf("");}2二进制无符号整数表示成十进制数二进制无符号整数转换为十进制数,采用“系数乘以权值再相加”法。把二进制的每一位作为系数,乘以该位的权值,再和其它各位的系数与权值的积相加,即Dn…D4D3D

4、2DlD0=DnX2n+Dn-lX2n-l+…+D2X22+D1X21+D0X20。利用上述原理编写twoten()函数,该函数的功能是用户输入一个二进制数,程序就可以自动把它对应的十进制数显示出来。代码如下:^include’’stdio.h”^include’’stdlib.h”inttwoten(){inti,j,c,sum=0,n;longdata;charstr[32];printf(〃请输入二进制整数:〃);scanf("%d",&data);itoa(data,str,2);n=strlen(str);for(i=l;i<=n;i++){c=data%10;data

5、=data/10;for(j=l;j〈=i-l;j++){c=c*2;}sum=c+sum;}printf(〃转换成十进制数为:%d〃,sum);}3非十进制无符号整数表示成二进制数非十进制无符号整数表示成二进制数,情况相对复杂,我们采取的策略是:先把非十进制数转换成十进制数,由函数xten()实现,再调用tentwo()函数完成十进制数转换成二进制数的任务,以表示出二进制数。xten()程序代码如下:ttincludc’’stdio.h''ftinclude’’stdlib.h"intxten(){inti,j,cl,sum二0,n,nl;longdata;charstr[

6、32];printf("输入的数据是几进制整数?(2—32)〃);scanf("%d〃,&nl);printf(〃请输入%d进制整数:〃,nl);if(nl=16)scanf("%x",&data);elsescanf(〃%d〃,&data);itoa(data,str,nl);n=strlcn(str);;for(i=l;i<=n;i++){if(nl=16)cl=data%16;elsecl=data%10;if(nl==16)data=data/16;elsedata=data/10;for(j=l;j〈=i-l;j++){cl=cl本nl;}sum=cl+sum;}pri

7、ntf(〃转换成十进制数为:%d〃,sum);}4综述利用上述方法,我们解决了c语言中二进制无符号整数的表示问题。参考文献[1]谭浩强等编著.C程序设计[M].北京:清华大学出版社,2005(2007重印).[1]周维武等编著.计算机基础教程(第3版)[M].北京:电子工业出版社,2008.[3]李飞,廖琪梅,何鑫主编.计算机应用新教程[M].西安:西安电子科技大学出版社,2⑻4.作者简介马红旭(1965-),女,黑龙江省哈尔滨市人。现为内蒙古师范大学副教授,研宄方向为计算机

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。