首页 > 编程知识 正文

c语言 十进制转二进制 八进制 十六进制,C语言十进制转换成二进制

时间:2023-05-06 14:28:13 阅读:256440 作者:4053

一、绪论

十六进制(Hexadecimal):在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15。

十进制(Decimal System):每相邻的两个计数单位之间的进率都为十;十进制是中华民族的一项杰出创造,在世界数学史上有重要意义。著名的英国科学史学家hsdjz教授曾对中国商代记数法予以很高的评价,"如果没有这种十进制,就几乎不可能出现我们现在这个统一化的世界了",hsdjz说:"总的说来,商代的数字系统比同一时代的古巴比伦和古埃及更为先进更为科学。"

八进制(Octal):一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。

二进制(binary):在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。

二、进制之间转换原则

转换原则:不同进制之间的转换本质就是确定各个不同权值位置上的数码。转换正整数的进制的有一个简单算法,就是通过用目标基数作长除法;余数给出从最低位开始的“数字”

基于上述原则详细解释十进制转换成二进制:

十进制整数部分转换:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

十进制小数部分转换:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

三、具体代码 #include <stdio.h>#define BASE_SIZE 32#define HEX 16int binary_conversion( int value_t , int target_system_t ){ int value = value_t; int target_system = target_system_t; int target_value [BASE_SIZE] = {0}; int target_value_i = 0; while( value ) { target_value[target_value_i] = value % target_system; value = value / target_system; target_value_i++; } if( target_system == HEX ) { for( ; target_value_i >= 0; target_value_i-- ) { printf( "%x", target_value[target_value_i] ); } }else{ for( ; target_value_i >= 0; target_value_i-- ) { printf( "%d", target_value[target_value_i] ); }}return 0;}int mian( void ){ int input_value = 0; int target_system = 0; scanf( "%d,%d", &input_value, &target_system ); binary_conversion( input_value, target_system ); return 0;}

int binary_conversion( int value_t , int target_system_t )函数就是实现十进制与其他进制数之间的转换,输入参数value_t就是需要转换的数值, 输入参数target_system_t 就是需要把十进制转换为哪种进制数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。