博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
58进制转换工具
阅读量:7014 次
发布时间:2019-06-28

本文共 1438 字,大约阅读时间需要 4 分钟。

二到十

十到十六
十到二
十六到十
//二进制转换十进制
10111B=1x24 + 0x23 +1 x22 +1 x21 +1 x20= 23 
十六进制转换十进制
125H=1×162+2×161+5×160=293D
十进制转换二进制的方法,不停的除以2,直到商为0,将每一步得到的余数倒着串起来即可
50D=
50 ÷ 2 =25 //余数为0
25 ÷ 2 =12 //余数为1
12 ÷ 2 =6 //余数为0
6 ÷ 2 =3 //余数为0
3 ÷ 2 =1 //余数为1
1 ÷ 2 =0 //余数为1
十六进制转换十进制
125H=1×162+2×161+5×160=293D
十进制转换十六进制
293D=
293 ÷ 16 = 18  //余数5
18 ÷ 16 = 1  //余数2
1
÷ 16 =0 //余数为1
125H=293D


void 二到十(char *p_二进制, char * p_十进制) {
 int l_十进制 = 0;
 int l_次方 = strlen(p_二进制) - 2;
 for (size_t i = 0; i < strlen(p_二进制) - 1; i++) {
  l_十进制 = l_十进制 + (p_二进制[i] - 48)*pow(2, l_次方);
  l_次方 = l_次方 - 1;
 }

 itoa(l_十进制, p_十进制, 10);

}

 

#include<stdio.h>

#include<stdlib.h>
#include<string.h>
#include<math.h>
void 十到二(char *p_输入数, char *p_进制) {
//50 ÷ 2 = 25 //余数为0
//25 ÷ 2 = 12 //余数为1
//12 ÷ 2 = 6 //余数为0
//6 ÷ 2 = 3 //余数为0
//3 ÷ 2 = 1 //余数为1
//1 ÷ 2 = 0 //余数为1
int l_v1 = atoi(p_输入数);
int l_v2;
int 结果[10] = { 0 };
int 索引=0;
while (l_v1 > 0) {
结果[索引] = l_v1 % 2;
l_v1 = l_v1 / 2;
索引 = 索引 + 1;
}
for (size_t i = 0; i <= 索引/2; i++)
{
l_v2 = 结果[i];
结果[i] = 结果[索引-i];
结果[索引 - i] = l_v2;
}
for (size_t i = 0; i < 索引+1; i++)
{
printf("%d", 结果[i]);
}
}
void main() {
char 进制数[100] = { 0 };
char 进制[10] = { 0 };
printf("请输入进制数");
fgets(进制数, sizeof(进制数), stdin);
进制数[strlen(进制数) - 1] = 0;
printf("请输入进制");
fgets(进制, sizeof(进制), stdin);
进制[strlen(进制) - 1] = 0;
if (strcmp(进制, "2") == 0) {
十到二(进制数, 进制);
}

 

system("pause");

}

 

转载于:https://www.cnblogs.com/xiaodaxiaonao/p/7896343.html

你可能感兴趣的文章
【进阶修炼】——改善C#程序质量(2)
查看>>
上下滑动隐藏显示导航栏
查看>>
oracle复习
查看>>
Eclipse使用多个Console【转】
查看>>
浅谈软件系统的标准化和产品化
查看>>
C++中sizeof操作符与strlen函数
查看>>
常用Maven插件介绍(全)
查看>>
Hibernate工作原理
查看>>
[翻译] 单例(Singleton)
查看>>
触发器
查看>>
两种常用小程序UI组件库
查看>>
中文名文件上传到linux服务器上以后文件名会乱码(openoffice)
查看>>
换行符
查看>>
C#语言学习--基础部分(二) 方法重载
查看>>
poj 2524 -- Ubiquitous Religions
查看>>
Linux 进程间通信
查看>>
bzoj1036
查看>>
Promise事件比timeout优先
查看>>
RabbitMQ学习总结(7)——Spring整合RabbitMQ实例
查看>>
off文件格式(Object File Format)
查看>>