c语言输出2进制
① c语言中怎么输出数据的二进制
二进制数不能像十进制那样%d直接输出。
如果想输出一个数的二进制可以通过函数把其转成2进制字符串再将其输出。
itoa函数
原型:char*itoa(intvalue,char*string,intradix);
参数:int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等
功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。
参考代码:
1、
#include<stdlib.h>
#include<stdio.h>
intmain(void)
{
intnumber=10;
charstring[25];
itoa(number,string,2);
printf("十进制数:%d,二进制数:%s ",number,string);
return0;
}
/*
十进制数:10,二进制数:1010
*/
2、
voidprint_bin(intn)
{
intl=sizeof(n)*8;//总位数。
inti;
if(i==0)
{
printf("0");
return;
}
for(i=l-1;i>=0;i--)//略去高位0.
{
if(n&(1<<i))break;
}
for(;i>=0;i--)
printf("%d",(n&(1<<i))!=0);
}
② c语言怎样标准输出二进制
C标准没有输出二进制的,不过用itoa()可以实现到二进的转换
example
int
a
=
10;
char
binbuf[32];
//存储二进制字串的空间
printf("%s\n",
itoa(a,
binbuf,
2));
//最后一个参数2表示2进制
③ 如何在c语言中输出二进制数
可以用 %x格式 输出16进制数,16进制一位拉4位,按8421分布,就是2进制数。1个字节正好用2位16进制表示,转为8位2进制。
④ 如何在c语言中输出二进制数
二进制是不可以直接输出的,但是可以用程序输出
#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语言输出二进制码
在C语言的标准输出中,有16进制,10进制和8进制的输出格式,但是没有二进制的输出格式。所以要想输出二进制,只能靠自己写函数进行输出了。
基本思想为通过移位操作+与操作取出各个位上的值,然后对其进行输出即可。
以32位无符号整型数据二进制输出为例,代码如下:
#include<stdio.h>
voidbinary_print(unsignedintv)
{
inti;
intbit;
intsize=sizeof(v)*8;
//这里的size是输入参数v的位数,直接用32代替也可以,但写成sizeof(v)*8这样更为通用。
for(i=0;i<size;i++)
{
bit=v&(1<<(size-i-1));//提取出第i位的值
if(bit==0)putchar('0');
elseputchar('1');
}
}
⑥ c语言的二进制数值如何直接输出
1、首先打开vc6.0, 新建一个项目。
⑦ C语言中怎样输出一个二进制的数
//我们用按位运算符:右移>>和按位运算符与^,这两个功能就可以实现。
#include<stdio.h>
voidprintBinary(intnumber);//这是声明一个自定义的函数,让编译器知道我们造了一个这么个函数,功能:将整数以二进制形式输出。
intmain()
{
printBinary(22);//括号里面可以填上你要输出的整数,比如要输出22的二进制形式
return0;
}
voidprintBinary()//自定义一个函数printBinary
{
inttemp=sizeof(number)-1;//定义一个变量:如果你的编译器是32位的,也就是inttemp=31;
while(temp>=0)//temp是循环的次数,不需要纠结判断是>=还是>,写完之后检验一下就知道哪个对了。
intvalue=number>>temp^1;//a>>temp。temp移动后,是把这个整数的二进制形式中最后一位,依次与1进行按位与运算。假如temp=31,就是把这个整数的二进制形式右移31位,只剩下了这个整数的二进制形式的开头第一个数字,然后与1进行按位与运算。真则为1,假则为0。
printf("%d",value);//每次输出整数的二进制形式的一个数字,从开头开始输出。.
temp--;//按位右移循环,直到把整数内存中所有的位移完毕。从内存中二进制形式的第一位开始。
}