当前位置:首页 » 编程语言 » c语言打印2进制
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言打印2进制

发布时间: 2022-11-20 08:44:42

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--;//按位右移循环,直到把整数内存中所有的位移完毕。从内存中二进制形式的第一位开始。

}

❷ c语言输入数字转换成2进制字符串原理

一般在程序里面写成除二取余数的方法来得到。跟二进制的数的取法手工算法一样。
任意数除2以后,如果有小数点,就在堆栈中写进一个1,没有小数就写0。然后除完以后,把堆栈的数倒取出来,就成了该数字的二进制。

#include <iostream.h>
void divideData(const float number, int &integer, float &decimal); //分离出整数和小数部分.
void printBinaryForInteger(int &integer); //打印整数部分的二进制形式.
void printBinaryForDecimal(float &decimal); //打印小数部分的二进制形式.
int main()
{
float number;
int integer;
float decimal;

cout<<"Please input a decimal number for being converted: ";
cin>>number;
cout<<"\nThe binary number converted from your input "<<number<<" is: ";
divideData(number, integer, decimal);
printBinaryForInteger(integer);

if (integer==0) cout<<"0";
cout<<".";
printBinaryForDecimal(decimal);
cout<<endl;
return 1;
}
void divideData(const float number, int &integer, float &decimal)
{
integer = (int)number;
decimal = number - (float)integer;
}
void printBinaryForInteger(int &integer)
{
int k,a=0;
int b[32];
while (integer!=0)
{
k=integer%2;
b[a++]=k;
integer=integer/2;
}
while (a>0)
{
cout<<b[--a];
}
}
void printBinaryForDecimal(float &decimal)
{
int i=0;
int count=0;
int a[8]={0};
while (count<6) //小数部分取6位(也可用符号常量设置).
{
decimal*=2;
a[count++]=(int)decimal;
if (decimal>=1.0)
decimal-=1.0;
}
while (i<6)
{
cout<<a[i++];
}
}
//用于C编译器时略作修改;只考虑了输入数为正数.

❸ 请教c语言程序员朋友,怎样运算才能输出2进制结果

这是电脑(计算机)的原理决定的。程序员级是直接涉及硬件的编程,而对于电脑硬件来说全都是数字电路。所谓数字也是用电脉冲来模拟的,而且是二进制,只有0和1。多位的二进制数完全用0和1来写不但冗长而且反而不直观,因此大量使用的是十六进制,使用0-9,A-F来表示。
脉冲模拟出来只有低电平和高电平的0和1,是完全离散的,只有正整数,没有小数点。所以在这里也用不上小数点。

❹ 如何在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语言中输出二进制数

有八进制,十进制和十六进制,不过没二进制,如果要,只能自己写转化
#include
void
main()
{
int
n
=
11;
printf("%o\n",
n);
printf("%d\n",
n);
printf("%x\n",
n);
}

❻ C语言中printf直接打出2进制数是%什么16进制是什么

C语言中,控制printf函数输出格式的是格式字符,printf没有直接打出2进制数的格式符,直接打出16进制的格式符是x格式符,即%x。

printf函数中输出的格式为printf("<格式化字符串>", <参量表>),格式化字符串由格式控制、和输出表列两部分组成,其中格式控制包含格式声明和普通字符。

格式声明由“%”和格式字符组成,如%d、%f等。它的作用是将输出的数据类型转换为指定的格式然后输出。普通字符是需要在输出时原样输出的字符。

(6)c语言打印2进制扩展阅读

C语言printf函数格式字符:

1、%d,按整型数据的实际长度输出。

2、%md,m为指定的输出字段的宽度。

3、%ld,输出长整型数据。

4、o格式符,以八进制整型式输出整数。

5、x格式符,以十六进制数形式输出整数。

6、u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。

7、c格式符,用来输出一个字符。

8、s格式符,用来输出一个字符串。

9、f格式符,用来输出实数(包括单双精度),以小数形式输出。

10、e格式符,以指数形式输出实数。

11、g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出是占宽度较小的一种),且不输出无意义的零。

12、p格式符,用于变量地址的输出。

13、%[scanfset]:

scanfset 有两种形式:一种是以非 “^” 字符开头的 scanset , 表示在读入字符串时将匹配所有在 scanfset 中出现的字符,遇到非scanfset 中的字符时输入就结束;

另外一种形式是以 “^” 字符开头的scanfset ,表示在读入字符串时将匹配所有不在scanfset 中出现的字符,遇到scanfset 中的字符输入就结束。

❼ C语言二进制怎么表示

c++中负数存储时,不是简单的将符号位置为1,而是采用补码的形式存储的,负数最高位为符号位,也就是1,其余全部取反,然后再加1。

假如操作系统是32位,-1的二进制存储不是:1000
0000 0000 0001,而是:1111 1111 1111 1110+1即1111 1111 1111 1111。

(7)c语言打印2进制扩展阅读:

C语言面向过程,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。

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

没有二进制直接输出,可以自己编写程序:
void
f(int
n)
{
if(n)
f(n/2);
else
return;
printf("%d",n%2);
}
上面是一个递归调用函数,它可以输出n的二进制格式

❾ 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);
}