相关文章推荐
精明的豆腐  ·  Python 读写二进制文件 ...·  43 分钟前    · 
活泼的领结  ·  数据类型 - Tableau·  3 周前    · 
勤奋的香槟  ·  IntelliJ IDEA ...·  1 年前    · 
小眼睛的小虾米  ·  gdb ...·  1 年前    · 
会搭讪的钢笔  ·  js ...·  1 年前    · 

用一个算法实现十进制数向二进制数转换,我们考虑得到7的二进制表示,奇数的二进制形式最后一位肯定是1,而偶数的二进制最后一位肯定是0。可以通过7%2来计算二进制最后一位数是0或者1。即对于十进制整数n而言,二进制表示的最后一位肯定可以用n%2计算出来。而为了得到二进制倒数第二位上的数字,则需要把十进制数除以2,这种对于十进制数的计算相当于把该数值的二进制位向左移了一位(可以类比计算一个十进制数的十位上数字,只需要把该数值除以十,此时得到的结果数值的个位即原数值的十位数值)。如果此时得到的结果是奇数,则说明二进制数倒数第二位对应1,否则为0。此时需要考虑,何时结束运算,只要被2除的结果等于或者大于2,那就还需要一位二进制位进行表示。因此,只有被2除的结果小于2时,才停止计算。所以,可以考虑循环和递归的方法实现该算法。

C语言实现方法一:

#include<stdio.h>
#define MAX 32
int main(void)
    int i=0,n,a[MAX];
    printf("请输入一个十进制整数:\n");
    scanf("%d",&n);
    while (n>0)   //循环过程的始终,判断n是否能被2除尽
        a[i] = n%2;   //用数组存储每次除以2之后的余数,即断定奇偶性,对应二进制位上数值
        i = i+1;
        n = n/2;
    printf("十进制整数转换为二进制数是:\n");
    for(; i > 0; i--)
        printf("%d",a[i-1]);
    printf("\n");
    return 0;

C语言实现方法二:

#include <stdio.h>
#define MAX 32
int main(void)
     int a,r,i=0,j=1,count[MAX];     //输入的是a
     printf("请输入一个十进制整数:\n");
     scanf("%d",&a);
     do{               //循环,直到a等于0跳出 
         r = a%2;       //求每一次的余数,即二进制位上的数值 
         a = a/2;
        count[i] = r;
     while(a != 0);      //每次除以2之后,二进制位左移一位,判断是否结束循环
     printf("十进制整数转换为二进制数是:\n");
     for(j = i; j > 0; j--)      //倒序输出二进制位上数值 
        printf("%d",count[j]);
     printf("\n");
     return 0;

C语言实现方法三:

#include<stdio.h>  
void binary_cal(int n){  
     int r;  
     r = n % 2;  
     if(n >= 2)  
           binary_cal(n/2);   //使用递归函数实现,占用较多内存,执行速度较慢
     printf("%d",r);  
int main(void){  
      int num;  
      printf("请输入一个十进制整数:\n");  
      while(scanf("%d",&num) == 1){  
           printf("十进制整数转换为二进制数是:\n");  
           binary_cal(num);  
           putchar('\n');  
      return 0;   

C++实现代码:

#include"stdafx.h"
#include <iostream>
#define MAX 32
using namespace std;
int main(){
	cout << "请输入一个整型十进制数:" << endl;
	int num,i= 0;
	cin >> num;
        cout << "十进制整数转换为二进制数是:" <<endl;
	int bin[MAX],length = 0;
		bin[i] = num % 2;
		num = num / 2;
		length++;
	} while (num != 1);
	bin[length] = num;
	length++;
	for (i = length - 1; i >= 0; i--)
		cout << bin[i];
	cout << endl;
	return 0;
                    用一个算法实现十进制数向二进制数转换,我们考虑得到7的二进制表示,奇数的二进制形式最后一位肯定是1,而偶数的二进制最后一位肯定是0。可以通过7%2来计算二进制最后一位数是0或者1。即对于十进制整数n而言,二进制表示的最后一位肯定可以用n%2计算出来。而为了得到二进制倒数第二位上的数字,则需要把十进制数除以2,这种对于十进制数的计算相当于把该数值的二进制位向左移了一位(可以类比计算一...
整数部分:如果不是0,不断除2,直到除到1为止,得到的余数最后逆向排列输出;如果是0,直接输出
小数部分:小数部分m非0,则不断乘2,如果2*m超过1,则输出1,m=2*m-1;如果2*m不超过1,m=2*m
由于很多小数是无法完全转换为二进制的(比如0.7),为了避免死循环,我们需要得到一个精度(保留多少位小数)
以下是代...
				
十进制转化为二进制并输出(以整型为例) 首先需要明确十进制转为二进制的算法:将所需转化的数除以2,所得余数为k1,将所得商再除以2,所得余数为k2…...重复步骤直到商为0;读数时从最后一个余数读起,即kn,k(n-1)…k2,k1;所得数便是转化成的二进制数(除二取余法) 例如:将20转化为二进制数 20/2 商为10 余数为0 k1 10/2 商为5 余数为0 k2...
题目内容:将十进制整数转换成二进制数。 输入描述:输入数据含有不多于50个的整数n(-231<n>”,再然后输出二进制数。每个整数n的输出,独立占一行。 题目分析:将某个数从十进制转为二进制的具体方法是,该数对2取余,结果要么为1要么为0,此为该数对应二进制的末位;然后该数除以二,得到的商再次对2取余,结果为对应二进制的倒数第二位……以此类推,知道除以2的结果为0。 参考代码: 代码如下:#include <iostream> #include <fstream> #include <string> #inclu
### 回答1: C语言标准库提供的二进制转十进制的函数是strtol。他接收两个参数,第一个是表示二进制数的字符串指针,第二个是指针类型的参数,表示需要转换的数值的类型(即转换后的十进制数的类型)。该函数返回转换后的十进制数。 使用strtol函数转换二进制字符串为十进制数的步骤如下: 1. 把二进制字符串作为第一个参数传给函数。 2. 把第二个参数设置为NULL。 3. 把第三个参数设置为2,表示需要转换的是二进制数。 4. 检查转换是否成功。如果转换失败,那么返回的结果为0。 例如,下面的代码片段将二进制数"1010"转换为整型的十进制数: char *str = "1010"; long num = strtol(str, NULL, 2); 需要注意的是,如果字符串不是一个合法的二进制数,则转换的结果是不确定的。此时,建议在转换前进行字符串的有效性检查。 ### 回答2: 二进制转十进制库函数是一种可以将二进制数字转换为对应的十进制数字的函数。在计算机科学领域,使用二进制表示数字是非常常见的,但有时候需要将二进制数字转换为十进制进行运算或展示。这时候,使用二进制转十进制库函数可以非常方便地实现这个转换。 在C语言,可以使用库函数strtoul()来进行二进制转十进制的转换。strtoul()函数的原型如下: unsigned long int strtoul(const char *nptr, char **endptr, int base); 其,第一个参数nptr是需要进行转换的字符串,这个字符串应该只包含0和1这两个数值。第二个参数endptr是一个指针类型的变量,在函数执行完成后,它会被赋值为指向nptr第一个无法进行转换的字符的位置。第三个参数base表示输入数字使用的进制,这里应该传递2,表示输入数字是二进制。 使用strtoul()函数可以非常简便地将一个二进制字符串转换为对应的十进制数字,该函数还支持将数字作为参数传递,而不是字符串。例如,以下代码将二进制数110101转换为十进制数53: #include <stdlib.h> #include <stdio.h> int main(void) { char *binary_str = "110101"; char *endptr; unsigned long int decimal = strtoul(binary_str, &endptr, 2); printf("Binary string %s in decimal is %lu\n", binary_str, decimal); return 0; 在这个例子,我们传递了一个二进制字符串110101给strtoul()函数,并将它转换为对应的十进制数53。最终,程序输出binary字符串110101转换为十进制的结果:53。 总之,使用C语言函数strtoul()可以非常方便地将二进制字符串转换为对应的十进制数字。需要注意的是,二进制字符串应该只包含0和1,否则转换结果可能出现错误。 ### 回答3: 在讨论二进制转十进制库函数之前,我们先来了解一下什么是二进制和十进制。 二进制是一种数制,它只有两个数字0和1,因此它也被称为“0/1数码系统”。它用于计算机科学和电子领域,因为这些领域的通信和计算只能使用二进制。相对的,十进制是我们日常生活最常用的数制,它有0到9这10个数字。 当我们需要把一个二进制数转换为十进制数时,我们可以使用库函数,比如Python的“int”函数。这个函数可以将一个由字符串表示的数字转换为整数,而字符串可以包含不同的进位制,如二进制、八进制和十六进制。 在Python,我们可以使用“int(二进制数,2)”来将一个二进制数转换为十进制数。其的“2”代表进制,指定要把二进制转换成十进制。 举个例子,如果我们要将二进制数1010111转换为十进制数,我们可以使用以下代码: num = '1010111' dec_num = int(num, 2) print(dec_num) 输出结果为:87 因此,通过使用“int”函数,我们可以很方便地把二进制数转换为十进制数,避免手动计算的繁琐过程。在实际开发,我们可以结合其他库函数和语法来完成更多的计算和处理操作。