突然想做一个十进制输入,输出相应的二进制数算法。

算法简介:

1、十进制转二进制通过位运算实现;

2、二进制数通过链表保存;

3、因为低位最先得到,所以链表用头插法实现(也可以直接用栈)。

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
/*
---------------------------------
function: 输入十进制转化为二进制输出
author: xuan
date:2021-5-17
vision:1.0
---------------------------------
*/#include<stdio.h>
#include"malloc.h"typedef struct node{//链表存放二进制数int data;struct node* next;
}*linknode;//函数声明区域
int Get_bitnums(int x);
void Insert_head(linknode L, int x);
void Trans_bit(linknode L, int x, int size);
void output(linknode L);//使用时应传入首节点而不是头节点int main()
{linknode L = (linknode)malloc(sizeof(linknode));L->next = NULL;printf("请输入一个十进制数:\n");int x = 0;scanf("%d", &x);Trans_bit(L, x, Get_bitnums(x));output(L->next);return 0;
}int Get_bitnums(int x)    //传入一个十进制数x,返回相应的二进制数位数
{int num = 0;while (x != 0){x = x / 2;num++;}return num;
}void Insert_head(linknode L, int x)  //头插法在L链表中插入值为x的节点
{linknode s = (linknode)malloc(sizeof(linknode));s->data = x;s->next = L->next;L->next = s;
}void Trans_bit(linknode L, int x, int size) //将十进制数x转化为二进制保存在链表x中,size表示位数
{while (size){Insert_head(L, x & 1);x = x >> 1;size--;}
}void output(linknode L)   //输出二进制数链表,每四位空格
{while (L != NULL){int i = 0;while (i < 4){printf("%d", L->data);L = L->next;i++;}printf(" ");}
}

C语言实现十进制数转二进制数输出相关推荐

  1. 用C语言实现十进制数到二进制数的转换

    今天用C语言来实现十进制到二进制的基本转换 以下是对基本变量的定义 以下是对主要思想的代码实现 以下是对最后打印数组,生成二进制数的实现 以下是整体代码的实现,如果觉得有帮助的话,记得点赞哟~ #de ...

  2. C语言-输入十进制数转换为二进制数

    DEC十进制转换为BIN二进制  BIN二进制 0 1 除2取余,倒序排列,高位补零 例如:14 14%2=0    14/2=7  7%2=1   7/2=3 3%2=1    3/2=1 1%2= ...

  3. 十进制数转换为二进制数

    Description 输入一个十进制整数,将其转换为二进制数,并将转换结果输出. Input 多组测试数据,每组输入一个十进制整数. Output 将十进制数转换为二进制数,输出转换结果. Samp ...

  4. Java中十进制数转二进制数的方法

    十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以 ...

  5. #Python# 十进制数转换为二进制数(包含小数)

    #Python# 十进制数转换为二进制数(包含小数) 问题描述 问题分析 代码 问题描述 编写程序,输入十进制小数(只考虑正数),把它转换为以字符串形式存储的二进制小数,输出该二进制小数字符串.对于转 ...

  6. 将一个很长(>30)的十进制数转换为二进制数

    进制转换 题目描述 将一个很长(>30)的十进制数转换为二进制数 输入 若干个很长的十进制数 每行一个 输出 转换为二进制,每行输出一个 样例输入 12345678901234567890123 ...

  7. c语言中十六进制可以直接和十进制运算吗,十进制与十六进制怎么理解?,C语言中十进制数和十六进制数能直接运算吗...

    16进制 10进制 00 0 01 1 02 2 .. . 09 9 0A 10 0B 11 0C 12 0D 13 0E 14 0F 15 10 16 1F 31 20 32 将数字符号按序排列成数 ...

  8. C++ 将十进制数转换为二进制数方法

    本文介绍一种将十进制数转换为二进制数的方式. 实现要点: (1)用数组来存储每次对2取余的结果. (2)两次使用for循环,分别进行转换和输出. (3)% 取模运算. #include <ios ...

  9. 十进制数转换为二进制数 C++

    十进制数转换为二进制数 C++ 前言 一.十进制转换为二进制的数学算法 二.代码实现 1.设计转换函数transfer 2.完整代码 总结 前言 这篇文章和大家分享一下我个人对十进制数转换为二进制数的 ...

最新文章

  1. DWRUtil的方法使用说明
  2. 《云计算:概念、技术与架构》一2.3 案例研究3:Innovartus
  3. git回滚到历史版本,并且删除本地untracked file
  4. redis中的事务、lua脚本和管道的使用场景
  5. VR與AI的激情相遇
  6. rs232读取智能电表_老王说表之--快速查看家里电表读数的方法
  7. Angular使用中的编码tips(持续更)
  8. Django框架——类视图
  9. 解密昇腾AI处理器--DaVinci架构(控制单元)
  10. 有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?
  11. pku 1321 棋盘问题 DFS
  12. c#listbox使用详解和常见问题解决
  13. loading怎么关闭 vant_Vant Loading 加载
  14. JavaWeb开发Session管理
  15. Unity中使用TextMeshPro打出Emoji表情
  16. xctf crackme
  17. 三点估算法评估开发工作量
  18. 网络异常无法连接远程服务器,《Chess Rush》网络异常进不去怎么回事 无法连接服务器解决方法...
  19. 7-38 寻找大富翁 (25 分)
  20. js将数字转换成中文大写

热门文章

  1. ENVI中TIF格式文件打不开
  2. toe网卡 linux c,TOE(TCP offload Engine)在高频交易中的应用
  3. java 代码 linux 执行chmod 755权限代码
  4. ORACLE - ORA-38104:Columns referenced in the ON Clause connot be updated:“a“.“id“
  5. 补码运算是否溢出的规则的实现
  6. 电吉他效果器含拓展 – Native Instruments Guitar Rig 5.2.2 win-mac
  7. Day4 --- Flask 蓝图与Rest-ful
  8. Makefile简单教程
  9. 抢夺英特尔Mac订单 AMD拦路虎暂不成气候
  10. 8051介绍--DW8051