c语言中进制之间的转换 进制转换 和函数调用的编程题 很急求

    关注技术领域的头条文章

    聚合全网技术文章,根据你的阅读喜好进行个性推荐

c语言进制转换代码 详细解释

聚合全网技术文章,根据你的阅读喜好进行个性推荐

深圳市奥思网络科技有限公司版权所有

}

摘要:进制转换对于学计算机专业的人来说,并不陌生,在很多课程里面都学过,计算机基础、微机原理等课程里面都有详细的方法介绍。该文主要以C语言编程为例,介绍中职对口单招考试中常见的进制转换的编程方法,让大家对循环语句和分支语句有进一步的了解。

关键词:C语言;进制转换

C语言是各类编程语言的基础,江苏省的计算机专业对口单招考试中,也把C语言作为考点,而且理论和技能考试中都占一定的比例。进制转换的编程方法是C语言中的一个重要知识点,在近几年江苏省的职校计算机对口单招考试中也是一个重要考点。如果掌握了其要领,实现起来就会得心应手,本文主要以C语言编程为例,介绍进制转换的编程方法,希望给参加江苏省的职校计算机对口单招考试的学生及编程爱好者带来一定的帮助。

进制也就是进位制,是人们规定的一种进位方法。对于任何一种进制X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,X进制就是逢X进位。而进制转换则是将一个数在各种进制之间的转换。常见的有:十进制变成R进制(二、八、十六进制),R进制变成十进制,R进制之间的互换等。下面就以C语言编程为例,介绍江苏省计算机专业对口单招考试中常见的进制转换编程方法。鉴于整数和小数的进制转换方法不一样,为了降低编程的难度,本文仅对整数部分实现进制转换作一介绍。

通常将十进制变成R进制的方法,用被除数反复除以R,除第一次外,每次除以R均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的最后一位余数是所求二进制数的最高位,依此类推,所得到的第一位余数是所求二进制数的最低位。该法称为“除R逆取余法”。在C语言中,为了便于区分和处理,通常将十进制存放于整型变量中,将R进制存放于一个字符数组中。“除R逆取余法”在C语言中实现通常分为两步:第一步“除R取余”, 即用被除数反复除以R,并将余数按序存放于字符数组中,直到被除数为0为止;第二步“逆置”,即将字符数组的次序颠倒一次。例:编一函数fun(int x,char a[])将十进制x转换成十六进制。十六进制有十六个基数“ABCDEF”,为了便于处理,将这十六个基数“ABCDEF”存放于一个数组hex[17]中,这样,被除数x除以十六,所得到的余数为0~15则依次对应着hex[17]中的0~15个元素。函数如下:

本题中的十六进制是比较难的一种,如果是二进制,则无须引入hex[17]字符数组,余数在10以内,直接可以加上’0’或48变成字符型。只要将a[n++]=hex[x%16]; x/=16;两句改成a[n++]= x%2+48; x/=2即可。八进制则将2改成8。提醒一下:a [n]=0;用于在一个字符串末尾加上结束符,不能遗忘。

通常将R进制变成十进制的方法,是将R进制上的每一位数乘以该位上的权后累加即可。该法称为“按权展开求和法”。二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……。用C语言编程的时候,可以这么理解:十进制数每每在最低位加一个数,相当于把原来的数扩大十倍,再加上这个数,如要将12变成123就是将12*10+3即可得到,其他进制亦然。同样将十进制存放于整型变量中,将R进制存放于一个字符数组中。例:编一函数函数int fun(char a[])将二进制转换成十进制,十进制返回。函数如下:

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

R进制之间的互换,在微机原理中,实现起来相对较为简单。例如将二进制变成八进制,有“三位变一位”的方法,将十六进制变成二进制有“一位变四位”的方法。在C语言编程中实现起来则比较麻烦,为了便于编程,可以将以上两种方法结合起来考虑。比如要将二进制转换成八进制,可以先用“按权展开求和法”将二进制转换成十进制,再用“除R逆取余法”将十进制转换成八进制,用此方法实现起来虽然有点麻烦,但确实行之有效,所以大家不妨一试。例:编一函数fun(char a[],char b[])将二进制转换成八进制。函数如下。

其他进制之间转换的编程方法亦可参照此方法进行。

以上进制转换的方法是中职学生常见的方法,也是近几年江苏省计算机专业对口单招考试中主要考点,主要考查学生对循环和分支语句的灵活运用。需要大家平时多注意积累,多动脑筋,记住进制转换的方法,并将方法灵活运用到平时的学习中去。中职学生包括广大编程爱好者要多总结,从而对循环及分支语句的使用能有进一步的了解。当然编程方法不唯一,希望大家八仙过海,各显神通。

[1] 李秉璋.C语言程序设计与训练[M].大连理工大学出版社,2011.

[2] 孔线丽.计算机专业综合理论复习用书(上册)第二版[M].原子能出版社,2007.

}

我要回帖

更多关于 c语言中进制之间的转换 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信