c语言中进制转换的编程方法

c语言中进制转换的编程方法

ID:31365411

大小:106.50 KB

页数:5页

时间:2019-01-09

c语言中进制转换的编程方法_第1页
c语言中进制转换的编程方法_第2页
c语言中进制转换的编程方法_第3页
c语言中进制转换的编程方法_第4页
c语言中进制转换的编程方法_第5页
资源描述:

《c语言中进制转换的编程方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C语言中进制转换的编程方法  摘要:进制转换对于学计算机专业的人来说,并不陌生,在很多课程里面都学过,计算机基础、微机原理等课程里面都有详细的方法介绍。该文主要以C语言编程为例,介绍中职对口单招考试中常见的进制转换的编程方法,让大家对循环语句和分支语句有进一步的了解。  关键词:C语言;进制转换  中图分类号:TP311文献标识码:A文章编号:1009-3044(2015)29-0124-02  C语言是各类编程语言的基础,江苏省的计算机专业对口单招考试中,也把C语言作为考点,而且理论和技能考试中都占一定的比例。进制转换的编程方法

2、是C语言中的一个重要知识点,在近几年江苏省的职校计算机对口单招考试中也是一个重要考点。如果掌握了其要领,实现起来就会得心应手,本文主要以C语言编程为例,介绍进制转换的编程方法,希望给参加江苏省的职校计算机对口单招考试的学生及编程爱好者带来一定的帮助。5  进制也就是进位制,是人们规定的一种进位方法。对于任何一种进制X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,X进制就是逢X进位。而进制转换则是将一个数在各种进制之间的转换。常见的有:十进制变成R进制(二、八、十

3、六进制),R进制变成十进制,R进制之间的互换等。下面就以C语言编程为例,介绍江苏省计算机专业对口单招考试中常见的进制转换编程方法。鉴于整数和小数的进制转换方法不一样,为了降低编程的难度,本文仅对整数部分实现进制转换作一介绍。  1十进制变成R进制  通常将十进制变成R进制的方法,用被除数反复除以R,除第一次外,每次除以R均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的最后一位余数是所求二进制数的最高位,依此类推,所得到的第一位余数是所求二进制数的最低位。该法称为“除R逆取余法”。在C语言中,为了便于区分和处理,通

4、常将十进制存放于整型变量中,将R进制存放于一个字符数组中。“除R逆取余法”在C语言中实现通常分为两步:第一步“除R取余”,即用被除数反复除以R,并将余数按序存放于字符数组中,直到被除数为0为止;第二步“逆置”,即将字符数组的次序颠倒一次。例:编一函数fun(intx,chara[])将十进制x转换成十六进制。十六进制有十六个基数“0123456789ABCDEF”,为了便于处理,将这十六个基数“0123456789ABCDEF”存放于一个数组hex[17]中,这样,被除数x除以十六,所得到的余数为0~15则依次对应着hex[17]

5、中的0~15个元素。函数如下:  voidfun(intx,chara[])  {intn=0,i;  charhex[17]=”0123456789ABCDEF”,t;  while(x)/*第一步除16取余*/  {a[n++]=hex[x%16];5  x/=16;}  a[n]=’\0’;/*字符串加上结束符*/  for(i=0;i

6、数组,余数在10以内,直接可以加上’0’或48变成字符型。只要将a[n++]=hex[x%16];x/=16;两句改成a[n++]=x%2+48;x/=2即可。八进制则将2改成8。提醒一下:a[n]=0;用于在一个字符串末尾加上结束符,不能遗忘。  2R进制变成十进制  通常将R进制变成十进制的方法,是将R进制上的每一位数乘以该位上的权后累加即可。该法称为“按权展开求和法”。二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……。用C语言编程的时候,可以这么理解:十进制数每每在最低位加一个数,相当于把原来的数扩大十倍,再加

7、上这个数,如要将12变成123就是将12*10+3即可得到,其他进制亦然。同样将十进制存放于整型变量中,将R进制存放于一个字符数组中。例:编一函数函数intfun(chara[])将二进制转换成十进制,十进制返回。函数如下:  intfun(chara[])  {ints=0,i;  for(i=0;a[i];i++)5  s=s*2+a[i]-48;  returns;}  如果是将八进制转换成十进制,将s=s*2+a[i]-48;中的2改成8就行。如果是将十六进制转换成十进制,而十六进制有十六个基数“0123456789ABC

8、DEF”,它们转变成数值,处理方法不一样,‘0’~‘9’变成0~9只要-48即可,‘A’~‘F’变成10~15需要-55,那就需要对基数进行判断,分两种情况进行处理,故要将函数中的s=s*2+a[i]-48;改成双分支语句if(a[i]>’9’)s

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

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

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