C语言实现十进制数转二进制数输出

本文介绍了一个使用C语言将十进制数转换为二进制数的算法,通过位运算完成转换,并利用链表存储二进制结果,采用头插法确保低位在前。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

算法简介:

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值