C语言将十进制数转化为二进制(递归,规定位数)

/*运用递归算法*/

#include<stdio.h>
void B(int n)   //定义函数
{
 if (n != 0)
 {
  printf("%d",n%2);
  B(n / 2);
 }
}
int main()
{

int n;
 printf("Input number:");

scanf("%d",&n);

printf("输出二进制:");

B(n);   //在B()函数里打印二进制数
 return 0;
}

/*定义数组并使用do{}while();进行赋值*/

#include<stdio.h>
int main()
{
 int a;
 char s[20];
 int i = 0, rem;
 printf("Input number:");
 scanf("%d", &a);
 do
 {
  rem = a % 2;

a = a / 2;
  s[i] = rem;
  i++;
 } while (a != 0);
 printf("输出二进制:");
 while (i > 0)
  printf("%d", s[--i]);//

return 0;
}

/*该代码可以实现固定输出位数*/

#include<stdio.h>
#define N 32  //固定位数
int main()
{
 int arr[N] = {0};//将数组初始化为0(位数不满时,将输出0填补)
 int i;
 int n;
 printf("Input number:");
 scanf("%d",&n);
 for (i = N-1; i >=0; i--)  //对数组从后往前赋值
 {
  arr[i] = n % 2;
  n = n / 2;
 }

printf("输出二进制:");
 for (i = 0; i <= N - 1; i++)
 {
  printf("%d",arr[i]);
 }
 return 0;
}

时间: 2024-08-05 15:22:59

C语言将十进制数转化为二进制(递归,规定位数)的相关文章

【模板小程序】任意长度十进制数转化为二进制(java实现)

妈妈再也不用担心十进制数过大了233 import com.google.common.base.Strings; import java.math.BigInteger; import java.util.Scanner; /** * 任意长度十进制数转化为二进制 */ public class AnyNumberConverterFromDecimalToBinary { /** * * @param srcNum 待转换的十进制数 * @return 二进制字符串 */ private s

计算十进制数转化成二进制时1的个数

#include <iostream> using namespace std; int func(int x) { int cnt = 0; while (x) { cnt++; x = x&(x - 1); } return cnt; } int main() { cout << func(9999) << endl << func(8); cin.get(); return 0; } 输出8,1 其实上面那个函数输出结果是:形参x转化为二进制后

java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

1 package com.llh.demo; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * @author llh 8 * 9 */ 10 public class Test { 11 /* 12 * 将任意一个十进制数数字转换为二进制形式,并输出转换后的结果(使用数组存储) 13 */ 14 public static void main(String[] args) { 15 Scanner sc = new Scanner(System.in

递归 将一个十进制数转化为任意进制字符串

Create All kinds of guns. 设计重点: 1 基类作接口 2 继承类是各种不同的类 3 构建工厂类,然后根据需要创造不同的类,可以传入关键字,或者索引等. #pragma once #include <string> #include <iostream> using namespace std; //Base class class Gun { public: virtual string description() { return "Gener

输入的数转化为二进制序列,并统计序列中1的个数

★输入的数转化为二进制序列,并统计序列中1的个数 描述:普通的模除取余后数直接除二的办法易于理解,但是对于输入的数只限于正数和零,对于负数则不适应,所以采用与后移位的方法以此来扩大数的输入范围. #include<stdio.h> int main() { int m,b,c,i; int count = 0; char a[32]; printf("请输入一个数:\n"); scanf("%d", &m); for (i = 0; i <

C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225

//编写一个函数:从传入的num个字符中找到最长的一个字符,并通过max传回该串地址. //重点:切记这里a[0]就是一个地址. 1 #include<conio.h> 2 #include<stdio.h> 3 #include<string.h> 4 #include<stdlib.h> 5 6 char *fun(char (*a)[81], int num, char *max) 7 { 8 max = a[0];//切记这里a[0]就是一个地址.

十进制如何转化成二进制,返回字符串形式

def Dec2Bin(num): temp = [] result = '' while num: yushu = num % 2 num = num//2 temp.append(yushu) while temp: result += str(temp.pop()) return result print(Dec2Bin(25))======11001 temp是一个空列表,用来保存每次除2后的余数 result是一个空的字符串,用以输出二进制的字符串形式 append()将余数添加到列表

将一个数转化为二进制后,求其中1的个数 C++

#include <iostream>using namespace std;int func(int x){ int count=0; while(x) { x=x&(x-1);//与的次数就是包含1的个数 count++; } return count;} void main(){ int x; cin>>x; cout<<func(x)<<endl; }

十进制数与二进制数的互相转化

二进制数是机器的语言,它与我们常用的十进制数存在着转化的方式 十进制数转化二进制公式:1.整数部分:除2取余 2.小数部分:乘2取整: 或者用数轴法来计算该十进制数为哪几个2的幂的和,然后将相应位置1即可得到二进制数: 二进制转化十进制:找到所有二进制数为1的位,然后将2的位数减一次幂相加即可得到相应的十进制数.