一、绪论

十六进制(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语言十进制转换成二进制、八进制、十六进制相关推荐

  1. c语言十进制转换成二进制八进制十六进制,十进制数转换成二进制,八进制,十六进制(c语言)...

    利用一个函数实现十进制数转换成二进制,八进制,十六进制.利用的是栈的后进先出的思想.算法简单. #include #include #include #define STACK_INIT_SIZE 1 ...

  2. C语言十进制转换成二进制源码

    把开发过程比较重要的一些内容备份一次,下边资料是关于C语言十进制转换成二进制的内容,应该对各位朋友有一些用. #include int main() { int num; std::cout < ...

  3. 十进制转换成二进制和十六进制的方法

    十进制转换成二进制和十六进制的方法 十进制数转换成二进制数-般分为两个步骤,即整数部分的转换和小数部分的转换. (1 )整数部分的转换 *除2取余法:*这种方法是由于D10=N2 =dn-1x2n-1 ...

  4. C语言 十进制转换成二进制

    /*十进制转换成二进制*/#include<stdio.h>int main(int argc,char argv[]){int num,i;scanf("%d",&a ...

  5. 十进制转换成二进制——C语言

    利用数组和调用函数编写一个十进制转换成二进制的程序 #include "stdio.h" int main(){int i = 0, n , a[32];printf(" ...

  6. 十进制转换成二进制 (栈)

    十进制转换成二进制 (栈) 首先,转化的思路是 辗转取余法.比如说n = 5,先取模(5%2)获得1,然后取余并将其赋值给本身,得到n = 2:再取模得到0,取余之后n = 1:对1取模(1%2)得到 ...

  7. 【JavaScript实现十进制转换成二进制】

    [JavaScript实现十进制转换成二进制] 什么是二进制 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借 ...

  8. 算法设计-利用栈把十进制转换成二进制

    十进制转换成二进制 void conversion(){ InitStack(S); scanf("%d",n); while(N){ Push(S,n%2) n=n/2; } w ...

  9. java口算出题程序_5分钟学会十进制转换成二进制的快速口算方法 Java输出二进制的代码...

    大一寒假的时候我在学校里学C语言的补码时候学会了一种十进制换成二进制的方法,不知道学计算机的是不是也是这么算的,感觉比高中数学课教的那除2取余的方法快多了,而且容易掌握和不需要笔算.具体方法如下,我会 ...

最新文章

  1. scala中Stream理解
  2. 区域数据导入功能(pinyin4J使用)
  3. 使用qrcode类制作二维码
  4. 文本处理算法_python 文本处理
  5. java 一一对应的替换_java 如何实现按表替换
  6. iOS---UICollectlionView 的使用
  7. SylixOS lsusb命令解析
  8. 地理信息地图标记KML与KMZ的区别
  9. AD9371开发总结(一)
  10. 计算机应用软件安装不了,应用程序无法正常启动,详细教您电脑应用程序无法正常启动0xc000007b怎么解决...
  11. 矿山井口安检综合管理系统
  12. Mars3D开发基础学习:相机Camera及视角控制
  13. c语言怎么让行末没有空格,新人提问:如何将输出时每行最后一个空格删除
  14. c语言atm程序个人总结,C语言程序设计报告(模拟ATM取款机)
  15. 2、软件的生命周期软件测试的工作流程
  16. Linux ALSA 之一:ALSA 架构简介
  17. 标量,向量,矩阵和张量的关系
  18. [编译环境]Anaconda navigator怎么打不开了?
  19. 如何用 Python 在笔记本上分析 100GB 数据?
  20. 阿里云服务器带宽测速四种方法

热门文章

  1. 全国普通话计算机测试试题及答案,全国普通话测试试题
  2. android ndk 编译c++11,Android NDK中的c++ STL
  3. 贴吧备份到本地浏览html,Octoman微博备份插件,一键备份新浪微博为html文件
  4. Python学习教程:成语查询工具 - 数据获取
  5. 闪讯利用openwrt路由器拨号教程(一)
  6. MyBatisPlus一对多分页查询处理主表子表查询条件
  7. pytorch每日一学10(torch.set_printoptions())更改打印设置
  8. 2020云栖大会智慧出行专场:聚焦高精地图/算法、智能模型、自动驾驶、AR导航
  9. 多模态技术在淘宝主搜召回场景的探索
  10. 程序员因违反《竞业协议》赔偿腾讯近百万