十进制转化二进制,c语言用调用函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十进制转化二进制,c语言用调用函数相关的知识,希望对你有一定的参考价值。

1、打开visualC++6.0-文件-新建-文件-C++SourceFile。

2、输入预处理命令和主函数:

#include<stdio.h>           /*输入输出头文件*/

voidmain()/*空类型:主函数*/

3、定义变量和数组的数据类型并输入一个十进制:

intb[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/

printf("输入一个十进制:");/*输出文字提示*/

    scanf("%d",&x);         /*输入一个十进制数字*/

k=-1;/*将-1赋给k*/

4、用除R取余倒计法将十进制的数转化成二进制的数:

do/*用循环将十进制的数转化成二进制的数*/

r=x%2;/*用除R取余倒计法计算二进制*/

b[++k]=r;/*将值赋给数组*/

x/=2;/*将原数除2*/

    while(x>=1);

5、输出结果:

    for(i=k;i>=0;i--)        /*将上面倒计的数正回来*/

printf("%d",b[i]);/*输出结果*/

printf("\\n");

6、完整的源代码:

#include<stdio.h>           /*输入输出头文件*/

voidmain()/*空类型:主函数*/

intb[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/

printf("输入一个十进制:");/*输出文字提示*/

    scanf("%d",&x);         /*输入一个十进制数字*/

k=-1;/*将-1赋给k*/

do/*用循环将十进制的数转化成二进制的数*/

r=x%2;/*用除R取余倒计法计算二进制*/

b[++k]=r;/*将值赋给数组*/

x/=2;/*将原数除2*/

    while(x>=1);

    for(i=k;i>=0;i--)        /*将上面倒计的数正回来*/

printf("%d",b[i]);/*输出结果*/

printf("\\n");

参考技术A 如果是在windows下,可以使用itoa()函数来进行转换,如:
#include <stdio.h>
#include <stdlib.h>
void main()

char str[100];
int n=100;
itoa( n, str, 2 );
printf("%s\n", str );

itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使用。
头文件:#include <stdlib.h>
函数原型:char*itoa(int value,char*string,int radix);
函数说明:int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等,将数字按要求转换为对应进制的字符串
因为itoa并不是一个标准的C函数,它是Windows特有的,所以若在linux下进行二进制转换,就要自己动手自定义函数来实现了。

c语言的二进制数值如何直接输出?

1、首先打开vc6.0, 新建一个项目。

2、添加头文件。

3、添加main主函数。

4、定义一个两个数相加的函数binSubtracton。

5、在main函数定义int了性number1,number2, binSub。

6、使用scanf给变量赋值。

7、调用binAddition、binSubtracton。

8、使用printf打印结果。

参考技术A

C标准没有输出二进制的,不过用itoa()可以实现到二进的转换。

1、在C语言程序中,可以使用标准库函数中printf()来向屏幕输出信息,或者使用sprintf()向缓冲区输出信息。对整数而言,可以使用%d、%o、%x(或%X)输出十进制形式、八进制、十六进制形式,但貌似缺乏二进制形式。

2、解决方式有两种,一种是利用Windows提供的itoa()函数,另一种自行设计一个新的函数:

代码一:

/** Test.h */
#pragma once


#ifndef Test_H
#define Test_H


/** use itoa() to print integers in the form of binary 
 *  @param[in] n the integer to print
 *  @return void
 */
void printBinaryByItoa(unsigned int n);

代码二:

/** Test.c */
#include <stdio.h>
#include <stdlib.h>


void printBinaryByItoa(unsigned int n)

  unsigned char data[33];


  _itoa_s(n, data, 33, 2);
  
  printf("%sb\\n", data);



void printBinary(unsigned int n, unsigned char separator, unsigned char needPrefixZeros)

  unsigned int i = 0;
  unsigned int mask = 0;    /* the mask code to get each bit of n */
  unsigned char data[40];   /* the buffer to store the bits of n in the form of characters */
  unsigned int index = 0;   /* used to access data[] */
  unsigned int start = 0;   /* to point out where and when to store bits of n */
  
  data[39] = '\\0';

参考技术B 就像楼上说的,二进制是不可以直接输出的,但是可以用程序输出
#include<stdio.h>

void f(int n)

if(n) f(n/2);
else return;
printf("%d",n%2);


int main()

int n;
while(1)

scanf("%d",&n);
if(n<0) break;
if(n==0) printf("0");
f(n);
printf("\n");

return 0;
参考技术C void B_print (unsigned char B)//八位二进制输出

char j;
for(j=8;j>0;j--)printf("%d\t",(1&(B>>j)));


想要几位改循环次数和就行了

以上是关于十进制转化二进制,c语言用调用函数的主要内容,如果未能解决你的问题,请参考以下文章

C语言中怎样调用函数将十进制转换成二进制?

请帮忙用C语言编写一个函数~~~功能是“文件复制”~~~谢谢~~

C语言属于汇编语言吗?

求c语言将十进制数转换为16进制的函数

C语言调用函数编写把十进制整数n转换成十六进制怎么编程?

c语言 十六进制转换为二进制 用函数做