专栏首页小文博客十进制转换二进制(C语言)

十进制转换二进制(C语言)

题目: 链栈 利用链栈实现将一个十进制整数转换成二进制数。然后输出 如:十进制数为出格式类似:十进制数7对应的二进制数为111,对应的八进制数为7

  • 掌握要点:
    • 1.十进制转换成二进制的方法
    • 2.堆栈特点巧妙运用(先进后出,实现倒序)
  • 相关文献:
  • 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

运算过程

要点:除二取余,倒序排列解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果例如把52换算成二进制数,计算结果如图:200除以2得到的余数依次为:00010011,倒序排列,所以200对应的二进制数就是11001000。由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位....。于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。本文都以8位为例。那么:(200)10=(11001000)2


实现流程

  1. 建立栈
  2. 初始化栈
  3. 将余数一个个存进栈s中
  4. 元素出栈
  5. 摧毁栈

代码:

#include<stdio.h> #include <malloc.h> #define MaxSize 100 typedef int elemtype; typedef struct { elemtype data[MaxSize]; int top; }SqStack; //建立一个栈 int main() { SqStack *s; s = (SqStack *)malloc(sizeof(SqStack)); s->top = -1; //初始化栈 int num = 111; //待处理的数字 111 while(num > 0) { int m=num/2; int n=num%2; //n进栈 { if(s->top == MaxSize-1) { printf("栈满溢出!!! "); return 0; } s->top++; s->data[s->top]=n; } num=m; } //出栈 { while(s->top != -1) { int res = s->data[s->top]; s->top--; printf("%d", res); } printf(" "); } free(s); //摧毁栈 }

文件下载地址:见文章末尾

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 素数对猜想——《C语言代码笔记》

    神无月
  • AMH面板配置ssl证书,http转https

    神无月
  • 蓝桥杯C语言知识点补充——快速排序详解

    神无月
  • 数据结构--栈

    栈是一种先入后出的数据结构。 如下图所示,入栈的顺序为1、2、3;出栈的顺序则反过来:3、2、1。

    海天一树
  • C语言共享栈

    栈的操作我相信大家都应该了解了弄懂了, 如果没弄懂希望可以去再去看看相关的资料,我博客中的C语言中缀表达式转后缀表达式中涉及到了一下栈的基本操作,有兴趣的朋友...

    用户1637228
  • [基础]《C Primer》笔记(上篇)

    要把一个较小的常量作为long类型对待时,可以在值的末尾加上L后缀(小写的l不容易和数字1区分)。在支持long long的系统中,可以在值的末尾加上LL区分l...

    TOMOCAT
  • ++i和i++仅仅是先加1和后加1的区别吗?

    关于前置++与后置++的差别,这似乎再熟悉不过了。前置++ 是先将变量的值加1,然后使用加1后的值参与运算。而后置++ 是先使用该值参与运算,然后再将该值加1。

    田维常
  • Leetcode: Binary Tree Right Side View

    Given a binary tree, imagine yourself standing on the right side of it, return t...

    卡尔曼和玻尔兹曼谁曼
  • 基础肿瘤知识记录

    肿瘤体细胞突变频率较高的基因 ? ? ? ? ? ? NSCLC:非细胞肺癌;PDAC:胰腺导管癌;T-ALL:T细胞急性淋巴细胞白血病 COSMIC V77...

    用户1680321
  • 牛客练习赛27 C. 水图(dfs+思维)

    题目链接:https://www.nowcoder.com/acm/contest/188/C

    Ch_Zaqdt

扫码关注云+社区

领取腾讯云代金券