八进制转二进制转换八进制的程序代码

2016第三届物联网大会
智能后视镜产品方案对接会
中国LED智能照明高峰论坛
第三届·无线通信技术研讨会
第二届·中国IoT大会
ETFo智能安防技术论坛
移入鼠标可放大二维码
二进制数与八进制数的相互转换
来源:不详
作者:佚名日 11:27
[导读] 二进制数与八进制数的相互转换
(1)二进制数转换为八进制数: 将二进制数由小数点开始,整数部分向左,小数部分向右,每3位分
二进制数与八进制数的相互转换
(1)二进制数转换为八进制数: 将二进制数由小数点开始,整数部分向左,小数部分向右,每3位分成一组,不够3位补零,则每组二进制数便是一位八进制数。
(2)八进制数转换为二进制数:将每位八进制数用3位二进制数表示。&&&&&
进制相关文章
进制相关下载
技术交流、积极发言! 发表评请遵守相关规定。
ARM全新推出的DynamIQ架构首次允许一个处理器芯片集成8个内核,而且可以是异构内核,它第一次使得处理器供应商可以采用更高效、更灵活的多核配置,它...
如果说贝索斯在消费端已经看到了人工智能的巨大市场潜力,他提示的海量数据就是基础。但是在企业战略和大数据以及人工智能的结合上面,他显然没有...
创新实用技术专题
xml和VR技术在GIS中数据互操作设计与实现简述
版权所有 & 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-十进制,十六进制,八进制转换为二进制代码的算法是什么?高分靠赏,详细点-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
十进制,十六进制,八进制转换为二进制代码的算法是什么?高分靠赏,详细点
来源:互联网 发表时间: 14:00:41 责任编辑:王亮字体:
为了帮助网友解决“十进制,十六进制,八进制转换为二进制代码的算法是什么?高分靠赏,详细点”相关的问题,学网通过互联网对“十进制,十六进制,八进制转换为二进制代码的算法是什么?高分靠赏,详细点”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:十进制,十六进制,八进制转换为二进制代码的算法是什么?高分靠赏,详细点,具体解决方案如下:解决方案1:右到左三个二进制数一组,同理小数部分从左向右三位一组,不够左补零、2,按4、1相加即可,不够右补零
1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号数制的转换(二进制、八进制、十进制、十六进制)
由于计算机内只有高低电平,只能代表0和1两种状态,就此产生了二进制,而人们习惯的数字是十进制。所以就存在十进制与二进制之间的转换,但是由于二进制表示数据起来不方面(特别是当数值比较大时),十进制转换为二进制又比较麻烦,就产生了八进制、十六进制
进制对照表
2进制与八进制、十六进制转换十分容易
每个进制都是的每一位都是有位权的vcD4KPHA+yOejujEwMDGjqLb+vfjWxqOpICAgICAgMl4zKjEgJiM0MzsgMl4yKjAgJiM0MzsgMl4xKjAgJiM0MzsgMl4wKjEgPSA5PC9wPgo8cD4gICAgMTAwMaOosMu9+NbGo6kgICAgICA4XjMqMSAmIzQzOyA4XjIqMCAmIzQzOyA4XjEqMCAmIzQzOyA4XjAqMSA9IDUxMzwvcD4KPHA+ICAgIDEwMDGjqMquvfjWxqOpICAgICAgMTBeMyoxICYjNDM7IDEwXjIqMCAmIzQzOyAxMF4xKjAgJiM0MzsgMTBeMCoxID0gMTAwMTwvcD4KPHA+ICAgIDEwMDGjqMquwfm9+NbGo6kgICAgMTZeMyoxICYjNDM7IDE2XjIqMCAmIzQzOyAxNl4xKjAgJiM0MzsgMTZeMCoxID0gNDA5NzwvcD4KPHA+0tTJz7XEtrzKx7u7y+O1vcquvfjWxrXEvMbL473hufuho7/JvPvNrNK7uPbK/dfWyOe5+86qsrvNrMr91sa087bgyv3H6b/2z8Kx7cq+tcTK/SYjMjA1NDA7tPPQocrHsrvNrLXEPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:">#include
#define Binary
#define Octal
#define Decimal 100
#define Hex
int main()
printf("the Binary
%d\n", Binary);
printf("the Octal
%d\n", Octal);
printf("the Decimal %d\n", Decimal);
printf("the Hex
%d\n", Hex);
运行结果:
the Binary
the Decimal 100
C语言中默认数值是十进制,如果一个数值是0开头的就是八进制,如果以0x或者0X开头就是十六进制
同样可以通过printf指定不同的格式打印相应的进制
%d %u有无符号十进制打印
八进制打印
%x %X 十六进制打印,两者区别x约定使用abcedf,而X预定使用ABCDEF
二进制与八进制/十六进制转换比较简单,因为分别是2的3次方,4次方
1100(二进制)
001100 ---->
14(八进制)
1100(二进制)
----> c (十六进制)
反之也是一样
十进制与二进制转换
十进制 ------> 二进制
这里可以用十六进制过度。16 ,256 ,4096 ,65536 ,1048576 , ...(分别是就是16^1 ,16^2 ,16^3……)
先找第一个比要转的那个数小的数,然后用这个数除那个要转的数,得到的商就是那个位的数(位数就是是指数),然后找到第一个比余数小的数,)
9999 ----> 二进制?
商为2,说明十六进制的第3位为2,余数为1807。
商为7,说明十六进制的第2位为5,余数为15。
后面的直接是十六进制第一位为0,第零位为15
9999(十进制) ----> 270f(十六进制) -----> 00 1111(二进制)
这样就比9999这么大的数一直除2快许多了
二进制转十进制比较简单,如前面所说的按位权乘加就可以了。十进制转八进制、十六进制和上面的一样,只是省去了转换为二进制的步骤&>&&>&&>&&>&十进制数转换为二进制八进制十六进制数c++代码
十进制数转换为二进制八进制十六进制数c++代码
上传大小:1KB
把任意一个十进制数转换为二进制八进制十六进制数的c++源代码
综合评分:3.8(9位用户评分)
所需积分:3
下载次数:36
审核通过送C币
创建者:fireblue1990
创建者:ljheee
课程推荐相关知识库
上传者其他资源上传者专辑
课程资源热门标签
VIP会员动态
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
十进制数转换为二进制八进制十六进制数c++代码
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:9224人阅读
数据结构与算法分析(9)
#include&stdio.h&#include&string.h&#include&stdlib.h&void D_B(int);void D_O(int);void D_X(int);void B_D(int);void B_O(int);void B_X(int);void O_B(int);void O_D(int);void O_X(int);void X_B(char r[],int k);void X_D(char r[],int k);void X_O(char r[],int k);void main(){&int i,j,k=0;&int&q;&char r[10];&printf(&+=============================================================+/n&);&printf(&|&&&&&&&&&&& 欢& 迎& 使& 用& 进& 制& 转& 换& 程& 序&&&&&&&&&& |/n&);&printf(&+=============================================================+/n&);&printf(&& 注 : 本 版 本 只 做 正 整 数 的 进 制 转 换 ! !&);&do&{&&&q=0;&&//fflush(stdin);&&printf(&/n请选择需要被转换的进制:/n0、退出/n1、二进制/n2、八进制/n3、十进制/n4、十六进制/n&);&&scanf(&%d&,&i);&&switch (i)&&{&&&case 1:&printf(&/n请选择转换后的进制:/n0、退出/n1、二进制/n2、八进制/n3、十进制/n4、十六进制/n&);&&&&&scanf(&%d&,&j);&&&&&switch(j)&&&&&{&&&&&case 1: printf(&/n同进制之间不用转化!/n&);&&&&&&&q=1;&&&&&&&&&&&&case 2: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&B_O(k);&&&&&&&q=1;&&&&&&&&&&&&case 3: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&B_D(k);&&&&&&&q=1;&&&&&&&&&&&&case 4: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&B_X(k);&&&&&&&q=1;&&&&&&&&&&&&case 0: &&&&&&&&&&&&&printf(&谢谢使用!!&);&&&&&&&&&&&&}&&&&&&&&case 2:&printf(&/n请选择转换后的进制:/n0、退出/n1、二进制/n2、八进制/n3、十进制/n4、十六进制/n&);&&&&&scanf(&%d&,&j);&&&&&switch(j)&&&&&{&&&&&case 2: printf(&/n同进制之间不用转化!/n&);&&&&&&&&q=1;&&&&&&&&&&&&case 1: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&O_B(k);&&&&&&&q=1;&&&&&&&&&&&&case 3: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&O_D(k);&&&&&&&q=1;&&&&&&&&&&&&case 4: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&O_X(k);&&&&&&&q=1;&&&&&&&&&&&&case 0: &&&&&& printf(&谢谢使用!!&);&&&&&}&&&&&&&&&case 3:&printf(&/n请选择转换后的进制:/n0、退出/n1、二进制/n2、八进制/n3、十进制/n4、十六进制/n&);&&&&&scanf(&%d&,&j);&&&&&switch(j)&&&&&{&&&&&case 3: printf(&/n同进制之间不用转化!/n&);&&&&&&&&q=1;&&&&&&&&&&&&&&&&&&case 1: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&D_B(k);&&&&&&&q=1;&&&&&&&&&&&&case 2: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&D_O(k);&&&&&&&q=1;&&&&&&&&&&&&case 4: printf(&/n请输入您想要转化的数:&);&&&&&&&scanf(&%d&,&k);&&&&&&&D_X(k);&&&&&&&q=1;&&&&&&&&&&&&case 0: &&&&&&&&&&&&&printf(&谢谢使用!!&);&&&&&}&&&&&&&&&case 4:&printf(&/n请选择转换后的进制:/n0、退出/n1、二进制/n2、八进制/n3、十进制/n4、十六进制/n&);&&&&&scanf(&%d&,&j);&&&&&switch(j)&&&&&{&&&&&case 4: printf(&/n同进制之间不用转化!/n&);&&&&&&&&q=1;&&&&&&&&&&&&case 1: printf(&/n请输入您想要转化的数:&);&&&&&&&&fflush(stdin);&&&&&&&&gets(r);&&&&&&&&for(k=0;;k++)&&&&&&&&{&&&&&&&&&if(r[k]=='/0')&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&X_B(r,k);&&&&&&&q=1;&&&&&&&&&&&&case 2: printf(&/n请输入您想要转化的数:&);&&&&&&&fflush(stdin);&&&&&&&&gets(r);&&&&&&&&for(k=0;;k++)&&&&&&&&{&&&&&&&&&if(r[k]=='/0')&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&X_O(r,k);&&&&&&&q=1;&&&&&&&&&&&&case 3: printf(&/n请输入您想要转化的数:&);&&&&&&&fflush(stdin);&&&&&&&&gets(r);&&&&&&&&for(k=0;;k++)&&&&&&&&{&&&&&&&&&if(r[k]=='/0')&&&&&&&&&&&&&&&&&}&&&&&&&X_D(r,k);&&&&&&&q=1;&&&&&&&&&&&&case 0: &&&&&&printf(&谢谢使用!!&);&&&&&&&&&&&&}&&&&&&&&case 0: printf(&/n谢谢使用!/n&);&&&&&&}&}while(q==1);}
&///////以下为:& 二进制转换为十进制,八进制,十六进制.
void B_D(int a){&int i,s=0;&int result=0;&for(i=1;a!=0;i*=2)&{&&if(a%10&1)&&{&&&&s=1;&&&&&}&&else&&{&&&result+=(a%10)*i;&&&a=a/10;&&}&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else&printf(&/n转换后的数为:%d/n&,result);}
void B_O(int a){&int i,j,k,s=0;&int p[30];&int result=0;&for(i=1;a!=0;i*=2)&{&&if(a%10&1)&&{&&&&s=1;&&&&&}&&else&&{&&&result+=(a%10)*i;&&&a=a/10;&&}&}&for(j=0;result!=0;j++)&{&&p[j]=result%8;&&result=result/8;&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else &{&&printf(&/n转换后的数为:&);&&for(k=j-1;k&=0;k--)&&{&&&printf(&%d&,p[k]);&&}&&printf(&/n&);&}&}
void B_X(int a){&int i,j,k,s=0;&char p[30];&int result=0;&for(i=1;a!=0;i*=2)&{&&if(a%10&1)&&{&&&&s=1;&&&&&}&&else&&{&&&result+=(a%10)*i;&&&a=a/10;&&}&}&for(j=0;result!=0;j++)&{&&p[j]=result%16;&&result=result/16;&&if (p[j]&10)&&{&&&switch(p[j])&&&{&&&case 10:&p[j]='A';&&&&&&&&&case 11:&p[j]='B';&&&&&&&&&case 12:&&& p[j]='C';&&&&&&&&&case 13:&&& p[j]='D';&&&&&&&&&case 14:&&& p[j]='E';&&&&&&&&&case 15:&&& p[j]='F';&&&&&&&&&}&&}&&else p[j]+=48;&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else &{&&printf(&/n转换后的数为:&);&&for(k=j-1;k&=0;k--)&&{&&&printf(&%c&,p[k]);&&}&&printf(&/n&);&}}
&///////以下为:& 八进制转换为二进制,十进制,十六进制.
void O_B(int a){&int i,j,k,s=0;&int result=0;&int p[30];&for(i=1;a!=0;i*=8)&{if(a%10&7)&&{&&&&s=1;&&&&&}&&else&&{&&&result+=(a%10)*i;&&&a=a/10;&&}&}&for(j=0;result!=0;j++)&{&&p[j]=result%2;&&result=result/2;&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else &{&&printf(&/n转换后的数为:&);&&for(k=j-1;k&=0;k--)&&{&&&printf(&%d&,p[k]);&&}&&printf(&/n&);&}}
void O_D(int a){&int i,s=0;&int result=0;&for(i=1;a!=0;i*=8)&{&&if(a%10&7)&&{&&&&s=1;&&&&&}&&else&&{&&&result+=(a%10)*i;&&&a=a/10;&&}&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else &{&&printf(&/n转换后的数为:%d/n&,result);&}}
void O_X(int a){&int i,j,k,s=0;&char p[30];&int result=0;&for(i=1;a!=0;i*=8)&{&&if(a%10&7)&&{&&&&s=1;&&&&&}&&else&&{&&&result+=(a%10)*i;&&&a=a/10;&&}&}&for(j=0;result!=0;j++)&{&&p[j]=result%16;&&result=result/16;&&if(p[j]&10)&&&p[j]+=48;&&else&&{&&&switch(p[j])&&&{&&&case 10:&p[j]='A';&&&&&&&&&case 11:&p[j]='B';&&&&&&&&&case 12:&&& p[j]='C';&&&&&&&&&case 13:&&& p[j]='D';&&&&&&&&&case 14:&&& p[j]='E';&&&&&&&&&case 15:&&& p[j]='F';&&&&&&&&&}&&}&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else &{&&printf(&/n转换后的数为:&);&&for(k=j-1;k&=0;k--)&&{&&&printf(&%c&,p[k]);&&}&&printf(&/n&);&}}
&///////以下为:& 十六进制转换为十进制,二进制,八进制.
void X_D(char a[],int k){&int i,j,s=0;&int result=0;&int b[50];&for(i=0;i&k;i++)&{&&if(a[i]&='9'&&a[i]&='1')&&{&b[i]=a[i]-48;&&&& &&}&&else&&{&&&switch(a[i])&&&{&&&case 'A':&b[i]=10;&&&&&&&&&case 'B':&b[i]=11;&&&&&&&&&case 'C':&& b[i]=12;&&&&&&&&&case 'D':&& b[i]=13;&&&&&&&&&case 'E':&& b[i]=14;&&&&&&&&&case 'F':&& b[i]=15;&&&&&&&&&case 'a':&b[i]=10;&&&&&&&&&case 'b':&b[i]=11;&&&&&&&&&case 'c':&& b[i]=12;&&&&&&&&&case 'd':&& b[i]=13;&&&&&&&&&case 'e':&& b[i]=14;&&&&&&&&&case 'f':&& b[i]=15;&&&&&&&&&default:&&s=1;&&&&&&
&&&}&&&&&}&}&for(i=1,j=k-1;j&=0;j--,i*=16)&{&&result+=b[j]*i;&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else &{&&printf(&/n转换后的数为:%d&,result);&}
void X_B(char a[],int k){&int i,j,s=0;&int result=0;&int b[50];&int p[30];&for(i=0;i&k;i++)&{&&if(a[i]&='9'&&a[i]&='1')&&&b[i]=a[i]-48;&&else&&{&&&switch(a[i])&&&{&&&case 'A':&b[i]=10;&&&&&&&&&case 'B':&b[i]=11;&&&&&&&&&case 'C':&& b[i]=12;&&&&&&&&&case 'D':&& b[i]=13;&&&&&&&&&case 'E':&& b[i]=14;&&&&&&&&&case 'F':&& b[i]=15;&&&&&&&&&case 'a':&b[i]=10;&&&&&&&&&case 'b':&b[i]=11;&&&&&&&&&case 'c':&& b[i]=12;&&&&&&&&&case 'd':&& b[i]=13;&&&&&&&&&case 'e':&& b[i]=14;&&&&&&&&&case 'f':&& b[i]=15;&&&&&&&&&default:&s=1;&&&&&&
&&&}&&}&}&for(j=k-1,i=1;j&=0;j--,i*=16)&{&&result+=b[j]*i;&}&&for(j=0;result!=0;j++)&{&&p[j]=result%2;&&result=result/2;&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else &{&&printf(&/n转换后的数为:&);&&for(k=j-1;k&=0;k--)&&{&&&printf(&%d&,p[k]);&&}&&printf(&/n&);&}}
void X_O(char a[],int k){&int i,j,s=0;&int result=0;&int b[30];&int p[30];&for(i=0;i&k;i++)&{&&if(a[i]&='9'&&a[i]&='1')&&&b[i]=a[i]-48;&&else&&{&&&switch(a[i])&&&{&&&case 'A':&b[i]=10;&&&&&&&&&case 'B':&b[i]=11;&&&&&&&&&case 'C':&& b[i]=12;&&&&&&&&&case 'D':&& b[i]=13;&&&&&&&&&case 'E':&& b[i]=14;&&&&&&&&&case 'F':&& b[i]=15;&&&&&&&&&case 'a':&b[i]=10;&&&&&&&&&case 'b':&b[i]=11;&&&&&&&&&case 'c':&& b[i]=12;&&&&&&&&&case 'd':&& b[i]=13;&&&&&&&&&case 'e':&& b[i]=14;&&&&&&&&&case 'f':&& b[i]=15;&&&&&&&&&default:&s=1;&&&}&&}&}&for(j=k-1,i=1;j&=0;j--,i*=16)&{&&result+=b[j]*i;&}&&for(j=0;result!=0;j++)&{&&p[j]=result%8;&&result=result/8;&}&if(s==1)&&printf(&您的输入有误!请重新输入/n&);&else &{&&printf(&/n转换后的数为:&);&&for(k=j-1;k&=0;k--)&&{&&&printf(&%d&,p[k]);&&}&&printf(&/n&);&}}
///////以下为:& 十进制转换为二进制,八进制,十六进制.
void D_B(int a){&int j,k;&int p[30];&for(j=0;a!=0;j++)&{&&p[j]=a%2;&&a=a/2;&}&printf(&/n转换后的数为:&);&for(k=j-1;k&=0;k--)&{&&printf(&%d&,p[k]);&}&printf(&/n&);}
void D_O(int a){&int j,k;&int p[30];&for(j=0;a!=0;j++)&{&&p[j]=a%8;&&a=a/8;&}&printf(&/n转换后的数为:&);&for(k=j-1;k&=0;k--)&{&&printf(&%d&,p[k]);&}&printf(&/n&);}
void D_X(int a){&int j,k;&int p[30];&for(j=0;a!=0;j++)&{&&p[j]=a%16;&&a=a/16;&&if(p[j]&10)&&&p[j]+=48;&&else&&{&&&switch(p[j])&&&{&&&case 10:&p[j]='A';&&&&&&&&&case 11:&p[j]='B';&&&&&&&&&case 12:&&& p[j]='C';&&&&&&&&&case 13:&&& p[j]='D';&&&&&&&&&case 14:&&& p[j]='E';&&&&&&&&&case 15:&&& p[j]='F';&&&&&&&&&}&&}&}&printf(&/n转换后的数为:&);&for(k=j-1;k&=0;k--)&{&&printf(&%c&,p[k]);&}&printf(&/n&);}
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:96422次
积分:1389
积分:1389
排名:千里之外
原创:29篇
转载:19篇
评论:16条
(4)(4)(1)(1)(2)(27)(1)(1)(4)(1)(4)(5)(1)

我要回帖

更多关于 二进制转八进制算法 的文章

 

随机推荐