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

c语言不支持2进制

发布时间: 2022-06-19 16:49:30

A. 为什么c语言里不能用格式符表示2进制

c语言中没有规定用格式符表示2进制,没有相应的定义。
一般想表示2进制都要自己编程进行2进制转化。
在这儿我给你个我自己编的2进制转换成10进制的程序吧,你参考下:

/****************************************************/
/* 二进制-》十进制 */
/* (输入一个字符串,返回一个整数值) */
int binary_to_decimal(const char a[])
{
int i=0,k=0,sum=0;
while(a[i++]!='\0')
{i++;}
i--;

if(i>32) //当超过32位整数最大的范围时,报错
{
printf("超过32位整数的范围");
return 0;
}
else if(i<32 || (i==32 && a[0]=='0')) //当字符串小于32,或者刚好32位且第1位为'0'。
for(int j=i;j>0;j--)
{
if(a[k++]=='1')
sum+=(int)pow(2,j-1);
}
else //当字符串刚好32且第1位为'1',可知这是一个负数。负数需要求补,即把所有'0'、'1'互换,然后加上1。最后的正数加个符号即可。
{
for(int j=i;j>0;j--)
{
if(a[k++]=='0') //'0'、'1'互换
sum+=(int)pow(2,j-1);
}
sum+=1; //结果加1
sum=0-sum; //加个负号
}
return sum;
}

B. c语言变量可以赋值为二进制数吗

1 c语言中,变量不可以用二进制数来赋值

2 在c语言中,若要给变量赋整型值,则只可以用十进制数、八进制数和十六进制数来赋值

3 示例

intn;
n=12; //使用十进制数来赋值
n=012; //使用八进制数来赋值
n=0x12; //使用十六进制数来赋值

4 扩展

在Java中,变量是可以用二进制数来赋值的。一个示例如下

intn=0b111;
System.out.println(n);
//输出的结果为:7

C. c语言没有二进制对么

这叫什么话?计算机都用二进制,C语言也不例外地要用二进制表示和处理数据,只是C语言不支持用二进制输入和在屏幕上输出……

D. C源程序中为什么不能表示二进制数

数据在内存中以二进制补码形式存放!之所以用二进制存放是因为计算机容易识别二进制数,只有0和1表示,编码译码速度块,存取速度块。

我们熟悉的10进制、8进制、16进制数,表示起来都不是很长,如十进制数20,表示成8进制是24,表示成16进制是14,而表示成二进数(最短的是八位)是00010100。可见,二进制数书写起来比较困难,你想想,你想输入一个数值是20的数,你是想输20、24、14、00010100中的哪一个?显然,如果不是特殊的要求,我想我们都不会选择输入00010100吧。

基于此,C语言没有给你提供输入二进制数的格式控制符,不像10进制、8进制、16进制一样有%d、%o、%x这样的输入控制符。也就是说,你不能直接输入输出二进制数!

但是,C语言同样可以表示二进制数,因为数据在内存中都是以二进制数存储的,你想想,存都存的是二进制,还不能表示二进制数吗?只是数据的存储方式你看不到,但是假如你想看到一个数的二进制数,同样可以简单的实现。

请看程序,它就是把num这个数输出成二进制形式:
#include<stdio.h>
#include <stdlib.h>

void main()
{
int num;
char str[33];
printf("请输入整数num: ");
scanf("%d",&num);
itoa(num,str,2);
printf("%d的二进制形式是%s\n",num,str);

}

E. 为什么C语言没有直接支持二进制数

1 c语言中,变量不可以用二进制数来赋值 2 在c语言中,若要给变量赋整型值,则只可以用十进制数、八进制数和十六进制数来赋值 3 示例 int n;n = 12;//使用十进制数来赋值n = 012;//使用八进制数来赋值n = 0x12;//使用十六进制数来赋值4 扩展 在

F. 为什么C语言的程序中不可以输入二进制数呢

你不觉得输入2进制数很麻烦吗,没有必要设计能输入2进制,因为2进制可以很方便的转换成16进制和8进制,然后输入16进制或8进制数就可以了

G. c语言中不能表示数制的是什么进制

理论上来说,所有数字均可以自成进制,包括生活中常用的10进制,12进制,16进制,以及计算机领域中常用的2进制,8进制,16进制等。
从数学角度上来说,7进制,13进制,100进制,6789进制...
任意的进制都是可行的,虽然并没有什么现实意义。
在C语言中,只支持8进制,10进制,16进制。除了这三种外,其它进制均是不支持的。

H. c源程序为什么不能表示二进制,程序本身不就是二进制吗

数据在内存中以二进制补码形式存放!之所以用二进制存放是因为计算机容易识别二进制数,只有0和1表示,编码译码速度块,存取速度块。 我们熟悉的10进制、8进制、16进制数,表示起来都不是很长,如十进制数20,表示成8进制是24,表示成16进制是14,而表示成二进数(最短的是八位)是00010100。可见,二进制数书写起来比较困难,你想想,你想输入一个数值是20的数,你是想输20、24、14、00010100中的哪一个?显然,如果不是特殊的要求,我想我们都不会选择输入00010100吧。 基于此,C语言没有给你提供输入二进制数的格式控制符,不像10进制、8进制、16进制一样有%d、%o、%x这样的输入控制符。也就是说,你不能直接输入输出二进制数! 但是,C语言同样可以表示二进制数,因为数据在内存中都是以二进制数存储的,你想想,存都存的是二进制,还不能表示二进制数吗?只是数据的存储方式你看不到,但是假如你想看到一个数的二进制数,同样可以简单的实现。 请看程序,它就是把num这个数输出成二进制形式: #include<stdio.h> #include <stdlib.h> void main() { int num; char str[33]; printf("请输入整数num: "); scanf("%d",&num); itoa(num,str,2); printf("%d的二进制形式是%s\n",num,str); }

I. C语言二进制怎么表示

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

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

(9)c语言不支持2进制扩展阅读:

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

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

J. C语言中为什么不能用二进制表示整常数

2进制。
普通的数是十进制,0x表示十六进制,0后面加数字表示八进制。