C语言中进制转换的编程方法.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中进制转换的编程方法.doc

C语言中进制转换的编程方法   摘要:进制转换对于学计算机专业的人来说,并不陌生,在很多课程里面都学过,计算机基础、微机原理等课程里面都有详细的方法介绍。该文主要以C语言编程为例,介绍中职对口单招考试中常见的进制转换的编程方法,让大家对循环语句和分支语句有进一步的了解。   关键词:C语言;进制转换   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)29-0124-02   C语言是各类编程语言的基础,江苏省的计算机专业对口单招考试中,也把C语言作为考点,而且理论和技能考试中都占一定的比例。进制转换的编程方法是C语言中的一个重要知识点,在近几年江苏省的职校计算机对口单招考试中也是一个重要考点。如果掌握了其要领,实现起来就会得心应手,本文主要以C语言编程为例,介绍进制转换的编程方法,希望给参加江苏省的职校计算机对口单招考试的学生及编程爱好者带来一定的帮助。   进制也就是进位制,是人们规定的一种进位方法。对于任何一种进制X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,X进制就是逢X进位。而进制转换则是将一个数在各种进制之间的转换。常见的有:十进制变成R进制(二、八、十六进制),R进制变成十进制,R进制之间的互换等。下面就以C语言编程为例,介绍江苏省计算机专业对口单招考试中常见的进制转换编程方法。鉴于整数和小数的进制转换方法不一样,为了降低编程的难度,本文仅对整数部分实现进制转换作一介绍。   1 十进制变成R进制   通常将十进制变成R进制的方法,用被除数反复除以R,除第一次外,每次除以R均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的最后一位余数是所求二进制数的最高位,依此类推,所得到的第一位余数是所求二进制数的最低位。该法称为“除R逆取余法”。在C语言中,为了便于区分和处理,通常将十进制存放于整型变量中,将R进制存放于一个字符数组中。“除R逆取余法”在C语言中实现通常分为两步:第一步“除R取余”, 即用被除数反复除以R,并将余数按序存放于字符数组中,直到被除数为0为止;第二步“逆置”,即将字符数组的次序颠倒一次。例:编一函数fun(int x,char a[])将十进制x转换成十六进制。十六进制有十六个基数“0123456789ABCDEF”,为了便于处理,将这十六个基数“0123456789ABCDEF”存放于一个数组hex[17]中,这样,被除数x除以十六,所得到的余数为0~15则依次对应着hex[17]中的0~15个元素。函数如下:   void fun(int x,char a[])   {int n=0,i;   char hex[17]=”0123456789ABCDEF”,t;   while(x) /* 第一步除16取余 */   {a[n++]=hex[x%16];   x/=16;}   a[n]=’\0’; /* 字符串加上结束符 */   for(i=0;in/2;i++)/* 第二步逆置 */   {t=a[i];a[i]=a[n-1-i]; a[n-1-i]=t;}   }   本题中的十六进制是比较难的一种,如果是二进制,则无须引入hex[17]字符数组,余数在10以内,直接可以加上’0’或48变成字符型。只要将a[n++]=hex[x%16]; x/=16;两句改成a[n++]= x%2+48; x/=2即可。八进制则将2改成8。提醒一下:a [n]=0;用于在一个字符串末尾加上结束符,不能遗忘。   2 R进制变成十进制   通常将R进制变成十进制的方法,是将R进制上的每一位数乘以该位上的权后累加即可。该法称为“按权展开求和法”。二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……。用C语言编程的时候,可以这么理解:十进制数每每在最低位加一个数,相当于把原来的数扩大十倍,再加上这个数,如要将12变成123就是将12*10+3即可得到,其他进制亦然。同样将十进制存放于整型变量中,将R进制存放于一个字符数组中。例:编一函数函数int fun(char a[])将二进制转换成十进制,十进制返回。函数如下:   int fun(char a[])   {int s=0,i;   for(i=0;a[i];i++)   s=s*2+a[i]-48;   return s;}   如果是将八进制转换成十进制,将s=s*2+a[i]-48;中的2改成8就行。如果是将十六进制转换成十进制,而十六进制有十六个基数“0123456789ABCDEF”,它们转变成数值,处理方法不一样,‘0’~‘9’变成0~9只要-48即可,

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档