数制转换的基本原理和实现方法

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:39:51
求答案!急急急!!!!
高手解答。谢谢!!!!1

使用计算机的人每时每刻都在与数打交道,在计算机内部,数是以二进制表示的,而我们习
惯上使用的是十进制数,所以计算机从我们这里接收到十进制数后,要经过翻译,把十进制
数转换为二进制数才能进行处理,这个过程是由计算机自动完成的。但是对程序员来说,有
时需要把十进制数转换为二进制数、十六进制数和八进制数,或者把十六进制数转换为十进
制数等,这都不是一件轻松的工作,为了使这项工作变得轻松愉快,作者用TURBO C 2.0编写
了一个通用的数制转换程序TNS.C,使用它可以方便地完成2~36之间的各种数制的相互转换
工作。

一、数制转换的原理

数制转换的基本原理是:将一个指定进制的数,从高位到低位,一位一位取出,并计算出每
位的十进制值,然后乘以其数基的特定幂指数,得出这一位数的十进制值,将所有各位的十
进制值相加得出这个数的十进制值,然后再将该十进制数转换为指定数制的数,此过程可以
采用求余法进行,用这个十进制数作为被除数,用指定的数基作除数,连续求余,得出的余
数依由个位到十位等的顺序组成新数,即得指定数制的数。

二、程序设计的原理

程序设计的关键有两点:
⑴把输入的数转换为十进制数
从输入数值的高位开始,每取一位数字(X),判断它是否为该数制(数基为r)的有效数字,如
果是有效数字,求出其十进制值,然后乘以数基(r)的n-1次幂(n为该数字在数值中所处依右
到左的位数),即求“X * r攩n-1搅”,求出该位数所表示的十进制数值,最后将各位数的
十进制值求和,即得该数值的十进制值。⑵把这个数的十进制值转换为指定数制的数
这个转换过程可以方便地通过C语言提供的itoa,ltoa,ultoa三个函数来实现,它们都可以
把以十进制表示的数值(整型、长整型、无符号长整型)转换为指定数制的字符串,它们的用
法是:
char *itoa(int value,char *string,int radix)
cahr *ltoa(long value,char *string,i