怎么在C语言里面输入二进制数字?

Python017

怎么在C语言里面输入二进制数字?,第1张

c语言不能直接表示二进制,没有数字前缀表示。

例子如下:

假设有一个

int

类型的数,值为5,那么,我们知道它在计算机中表示为:

00000000

00000000

00000000

00000101

5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。

扩展资料

进制是一种计数的方式,常用的有二进制、八进制、十进制、十六进制。任何数据在计算机内存中都是以二进制的形式存放的。

我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数;八进制数是以8为计算单元,满8进1位的数。

对于任何一个数字,我们都可以用不同的进制来表示,比如,十进制数12,用二进制表示为1100,用八进制表示为14,用十六进制表示为0xc。

c语言中scanf()函数支持输入整数时按8进制进行输入,如:

#include

void main(void)

{

int x

scanf("%o", &x )//按8进制输入

printf("hex:%#x, dec:%d, oct:%#o\n", x,x,x )//按16进制 10进制 8进制进行数据输出

}

scanf()函数还支持按16进制输入,格式串为:%x

1、为了完成进制的转换,在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为十进制后的数相加,返回值就是相加后的和。

另外定义了一个数组array[8],用于存放输入的八位二进制数。

2、然后使用了一个for循环语句,用于输入八位二进制数。

3、在Sum函数中,又声明了一个power函数,power函数的作用是求2的n次方。

4、接着,使用了一个for循环语句,i用于控制循环的次数,n从最高的指数7开始每次循环减一,如果指数大于或等于零的,就进行循环。

5、在power函数中,如果b等于零,即指数为零,则返回1,否则就进入一个循环,j用于控制循环次数,有疑问的可以用笔算算乘2的个数对不对,最后将i返回。

6、最后看一下运行的结果。