c语言进制转换代码算法,C语言进制转换方法

c语言进制转换代码算法,C语言进制转换方法,C语言的进制转换及算法实现教程

本文主要介绍C语言的基本转换和算法实现的相关信息。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。有需要的朋友下面跟边肖学习。

1.从其他十进制到十进制的转换

1.1、二进制转十进制

转换过程:从最低位开始,提取每个位上的数字,乘以2的(数字-1)次幂,然后求和,例如:

二进制1011=1 * 2 0 1 * 2 1 0 * 2 2 1 * 2 3=1 2 0 8=11

1.2,八进制到十进制

转换规则:从最低位开始,提取每一位上的数,乘以8的(digit -1)次方,然后求和,例如:

八进制0123=3 * 8 0 2 * 8 1 1 * 8 2=3 16 64=83

1.3、十六进制转十进制

转换规则:从最低位开始,提取每个位上的数字,乘以16的(数字-1)次方,然后求和,例如:

十六进制0x34a=10 * 16 0 4 * 16 1 3 * 16 2=10 64 768=842

2.从十进制到其他十进制的转换

2.1、十进制转二进制binary

规则:将数除以2,直到商为0,然后将每一步得到的余数求逆,就是对应的二进制。因此,这种方法称为商除法逆序取余数法;

案例:将56转换为二进制

56 :

5/2=大于28 0

8/2=大于14 0

14/2=7大于0

7/2=3大于1

3/2=1剩余1

1/2=0大于1

因此,将56转换成二进制的结果是:111000

代码实现:

#包含stdio.h

//转换成十进制二进制

void main() {

Printf('请输入一个小数:');

int binary=0;//二进制数

int b=1;//循环标志

int num[100];//用于存储二进制的数组

int index=0;//数组的下标

int count=-1;//用于计算使用的数组数量。这里使用-1,因为数组的下标从0开始。

//所以我们循环一次自增的时候,第一次应该从0开始,如果count的初始值是0

//会导致使用的第一个数组的下标为1,会导致存储数据的下标索引与记录使用的下标计数不一致。

//溢出数据

scanf('%d ',二进制);

当(b) {

num[index]=二进制% 2;//取每个运算的余数

二进制/=2;//每次运算都需要将二进制数除以2

//printf('num[%d]=%d\n ',index,num[index]);

指数;//数组下标每循环一次就移位一位。

数数;//每次循环都意味着数组的一个位置被占用。

if (binary==0) {

b=0;

}

}

Printf(“占用%d个数组位置”,计数1);

printf(' \ n ');

Printf('二进制数是:');

for(int I=count;I=0;我- ) {

printf('%d ',num[I]);

}

getchar();

getchar();//Enter将被接收,所以需要两个来暂停控制台

}

2.2、十进制转八进制octonary

规则:将数除以8,直到商为0,然后将每一步得到的余数求逆,就是对应的八进制。

* *案例:* *将156转换为八进制

156:

16/8=大于19 4

9/8=2剩余3

2/8=0剩余2

因此,将156转换为八进制的结果是:0234

代码实现:

#包含stdio.h

//将十进制转换为八进制

#define TRUE 1 //宏定义TRUE为1

#define FALSE 0//宏将FALSE定义为0

void main() {

int num[100];//定义一个数组来存储转换后的八进制数。

int八进制=0;//十进制数

int b=TRUE//循环赋值标志

int index=0;//存储八位字节的下标

int count=-1;//八进制数的位数

Printf('请输入一个小数:');

scanf('%d ',八进制);

当(b) {

num[index ]=八进制% 8;//获取余数

八进制/=8;//累积除法

数数;

If(八进制==0) {//当八进制为0时,表示除法结束,除法结束。这个时候你只需要将余数除即可。

b=假;//反过来就是要求的八进制数。

}

}

Printf('占用%d个数组位置\n ',计数1);

Printf('八进制数为:');

for(int I=count;I=0;我- ) {

printf('%d ',num[I]);

}

getchar();

getchar();

}

2.3、十进制转十六进制HEX(hexadecimal)

规则:将数除以16,直到商为0,然后将每一步得到的余数反过来,就是对应的十六进制。

案例:将356转换为十六进制

356:

36/16=大于22 4

2/16=1剩余6

1/16=0大于1

所以356转换成十六进制的结果是0x164。

代码实现:

#包含stdio.h

#包含stdbool.h

//将十进制转换为十六进制

void main() {

int十六进制=0;

Printf('请输入一个小数:');

scanf('%d ',十六进制);

bool b=true

int index=0;//数组的下标

int num[100];//用于存储转换后的十六进制

当(b) {

num[index ]=十六进制% 16;

十六进制/=16;

if(十六进制==0) {

b=假;

}

}

Printf('占用数组的%d个位置\n ',index);

Printf('转换后的十六进制数为:');

for(int I=index-1;I=0;我- ) {

printf('%d ',num[I]);

}

getchar();

getchar();

}

3.从二进制到其他二进制的转换

3.1、二进制转八进制

规则:从低位开始,将二进制数分成三位数一组(111表示7),如果数不够,用0补充,然后将每组转换成对应的八进制。

案例:将11010101转换为八进制

1010101:三一集团。

第一组:101 —— 5

第二组:010 —— 2

第三组:011 —— 3

所以二进制11010101对应的八进制数是:0325。

3.2、二进制转十六进制

规则:从低位开始,将二进制数按四位数分组(1111表示F),转换成相应的十六进制数。

案例:将11010101转换为十六进制

1010101:把他们分成四组。

第一组:0101 —— 5

第二组:1101 —— 13

所以二进制11010101转换成十六进制数就是:0xD5。

4.从其他二进制到二进制的转换

4.1、八进制转二进制

规则:将八进制数的每一位转换成相应的三位数二进制数。

案例:将0237转换为二进制

0237:每一位对应一个三位二进制数进行拆分。

第一组7 —— 111

第二组3 —— 011

第三组2 —— 010

因此,八进制数0237转换为二进制数1001111。

4.2、十六进制到二进制

规则:将十六进制数的每一位转换成相应的四位二进制数。

案例:将0X23B转换为二进制数

0x23B:每一位对应一个四位二进制数进行拆分。

第一组B —— 1011

第二组3 —— 0011

第三组2 —— 0010

所以0x23B转换成二进制数:1000111011。

总结

关于C语言的十进制转换和算法实现的这篇文章到此为止。更多相关C语言的十进制转换和算法内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: