16进制 转为图片 php_C语言实现常用数据结构:十进制转其它进制栈应用(第13篇)...

3ed09113882974341074f436de47b05f.gif

「今天是学习C语言第 156 天」

纸上学来终觉浅,绝知此事要躬行。——  陆游「冬夜读书示子聿」

# 基本功能

利用栈实现十进制转任意进制,包括二进制、八进制、十六进制。

实现要点:利用栈后进先出的特性,为简单起见,这里使用数组模拟顺序栈实现。

备注:数组实现有最大长度限制,实际问题中,请根据前面该文章实现顺序栈。

进制转换基本公式:N表示十进制数,b表示进制。

N = (N/b)*b + N%b 。

# 代码运行结果

十进制数100转16进制后:64

十进制数1000转2进制后:1111101000

十进制数1000转8进制后:1750

十进制数1000转16进制后:3E8

# 代码简单实现

 /* ==========================================  名称   :C语言实现常用数据结构   功能   :十进制转任意进制-顺序栈应用   示例   :例如十进制100转为八进制144、十六进制64  环境   :Windows 10 + Dev-C++编译    作者   :一只会C的猫   公众号 :C语言大全(coderpointer)  时间   :2020.8.20 ==========================================*/#include // 使用数组实现顺序栈// 进制转换后最大位数#define MAX_SIZE 1000// base表示进制,取值2,8,16// 分别表示二进制、八进制、十六进制 void convert(int number, int base){  printf("十进制数%d转%d进制后:", number, base);  int stack[MAX_SIZE];  int top = -1;  do  {    stack[++top] = number % base;    number /= base;  }while(number != 0);    int t;  while(top > -1)  {    // 对十六进制特殊处理    t = stack[top--];    if(t < 10)      printf("%d", t);    else      printf("%c", 'A'+t-10);  }  printf("\n");} int main(void){  convert(0, 2);  convert(100, 2);  convert(100, 8);  convert(100, 16);  convert(1000, 2);  convert(1000, 8);  convert(1000, 16);  return 0;}

---------- End ----------

往期精彩推荐:

一万分钟C语言学习计划:2020开篇

C语言内存管理的两种方式

C89标准库功能简介

C语言链接与存储类型

C语言标准输入输出

C语言入门基本语法

更多请点击公众号历史文章...

03c192dc3b2b00d9ef7f365dbaa9bac9.png

「喜欢C请赏个 赞56b60224922bf7f60fc8135d45c0edfa.png    点击右下角 在看」

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值