C语言十进制转换成二进制、八进制、十六进制
一、绪论
十六进制(Hexadecimal):在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15。
十进制(Decimal System):每相邻的两个计数单位之间的进率都为十;十进制是中华民族的一项杰出创造,在世界数学史上有重要意义。著名的英国科学史学家李约瑟教授曾对中国商代记数法予以很高的评价,"如果没有这种十进制,就几乎不可能出现我们现在这个统一化的世界了",李约瑟说:"总的说来,商代的数字系统比同一时代的古巴比伦和古埃及更为先进更为科学。"
八进制(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 就是需要把十进制转换为哪种进制数。
C语言十进制转换成二进制、八进制、十六进制相关推荐
- c语言十进制转换成二进制八进制十六进制,十进制数转换成二进制,八进制,十六进制(c语言)...
利用一个函数实现十进制数转换成二进制,八进制,十六进制.利用的是栈的后进先出的思想.算法简单. #include #include #include #define STACK_INIT_SIZE 1 ...
- C语言十进制转换成二进制源码
把开发过程比较重要的一些内容备份一次,下边资料是关于C语言十进制转换成二进制的内容,应该对各位朋友有一些用. #include int main() { int num; std::cout < ...
- 十进制转换成二进制和十六进制的方法
十进制转换成二进制和十六进制的方法 十进制数转换成二进制数-般分为两个步骤,即整数部分的转换和小数部分的转换. (1 )整数部分的转换 *除2取余法:*这种方法是由于D10=N2 =dn-1x2n-1 ...
- C语言 十进制转换成二进制
/*十进制转换成二进制*/#include<stdio.h>int main(int argc,char argv[]){int num,i;scanf("%d",&a ...
- 十进制转换成二进制——C语言
利用数组和调用函数编写一个十进制转换成二进制的程序 #include "stdio.h" int main(){int i = 0, n , a[32];printf(" ...
- 十进制转换成二进制 (栈)
十进制转换成二进制 (栈) 首先,转化的思路是 辗转取余法.比如说n = 5,先取模(5%2)获得1,然后取余并将其赋值给本身,得到n = 2:再取模得到0,取余之后n = 1:对1取模(1%2)得到 ...
- 【JavaScript实现十进制转换成二进制】
[JavaScript实现十进制转换成二进制] 什么是二进制 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借 ...
- 算法设计-利用栈把十进制转换成二进制
十进制转换成二进制 void conversion(){ InitStack(S); scanf("%d",n); while(N){ Push(S,n%2) n=n/2; } w ...
- java口算出题程序_5分钟学会十进制转换成二进制的快速口算方法 Java输出二进制的代码...
大一寒假的时候我在学校里学C语言的补码时候学会了一种十进制换成二进制的方法,不知道学计算机的是不是也是这么算的,感觉比高中数学课教的那除2取余的方法快多了,而且容易掌握和不需要笔算.具体方法如下,我会 ...
最新文章
- js字母大小写字母转换
- python caffe报错:No module named google
- hadoop python入门_MRJob 极速入门,Python玩转Hadoop你会么?
- 连接mongodb,kafka异步处理代码
- 字符设备驱动基本流程
- RASA NLU Chi安装
- 数据库性能优化—全局优化思路
- You must supply a resourceID for a TextView
- Exchange server 2007 出现“0x8004010F”错误的解决办法
- 三面美团Java岗,面试竟然被这31道Java基础题难倒了
- 软件公司管理基本原则
- Python3——多线程之threading模块
- 统计数字(信息学奥赛一本通-T1239)
- phpVirtualBox – 用浏览器操作虚拟机
- 按钮点击触发的事件只生效一次
- qt 日历类 不可输入当前日期之后的日期_UI设计组件时间选择器,日历设计从未如此简单!...
- 奈何心是安定心,命总是流浪命
- 2022年最新WordPress主题更新列表(2022年5月28日)
- 怎样改计算机密码忘了怎么办,电脑设置的密码忘了怎么办
- MySQL下载安装 完美卸载