C语言中十进制以二进制形式输出

在C语言中我们通常有这样一种说法,

不管怎么写就看我们怎么读。

例如打印出一个整形的各种形式就有

printf("%o\n",a);八进制

printf("%n\n",a);十进制

printf("%x\n",a);十六进制

唯独没有打印出二进制

下面用代码展示一下打印出正数二进制形式

#include <stdio.h>

void f(int n)
{
	if(n)
		f(n/2);
	else
		return;
	printf("%d\n",n%2);
} 

int main(void)
{
	int n;
	while(1)
	{
		scanf("%d",&n);
		if(n<0) break;
		if(n==0) printf("0");
		f(n);
		printf("\n");
	}
	return 0;
}

时间: 2024-10-10 17:42:05

C语言中十进制以二进制形式输出的相关文章

C语言中使用二进制形式输出

#include 〈stdio.h〉 int main(void) {     int userInt; //接收用户输入的无符号整型     printf("请输入您要转换的整数:");     scanf("%u", &userInt);     int binArr[33] = {0}; //一个int类型为4字节32位,符号占一位     int cElement = 0; //统计元素个数     while(1){         if(user

char类型变量二进制形式输出

C语言char类型(1字节)以二进制形式输出: #include<stdio.h> void chrtobit(char chr)/* chr是要以二进制形式输出的char值*/{ char tchr=chr; int i; for(i=7;i>=0;i--) { char tmpc=tchr; tmpc=tchr&(1<<i); printf("%d",tmpc>>i); } printf("\n");}

int类型变量以二进制形式输出

C语言int类型(4字节)以二进制形式输出: #include<stdio.h> void intobit(int num)/*num是要以二进制形式输出的int值将二进制数据逐个置1,在右移,依次实现逐个输出*/{ int tnum=num; int i; for(i=31;i>=0;i--) { int tmpa=tnum; tmpa=tnum&(1<<i); ((i+1)%8==0&&i!=31)?printf(" %d",t

计算机中十进制转二进制的相关技巧

**关于计算机中十进制转二进制的相关技巧** 下面我们用二种方法进行对比: 1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法.具体做法是:用2整除十进制整数,可以得到一个商和余数:再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来. 如: 789=1100010101(二进制) 789/2=394 余1 第10位 394/2=197 余0

[原创]PostgreSQL中十进制、二进制、十六进制之间的相互转换

在PostgreSQL中,二进制.十进制.十六进制之间的转换是非常方便的,如下: 十进制转十六进制和二进制 mydb=# SELECT to_hex(10); to_hex -------- a (1 row) mydb=# SELECT 10::bit(4); bit ------ 1010 (1 row) 十六进制转十进制和二进制 mydb=# SELECT x'A'::int; int4 ------ 10 (1 row) mydb=# SELECT x'A'::bit(4); bit -

将一个字符(char)或者一个整形(int)的二进制形式输出

要输出一个数的二进制形式使用位操作  >> 和 & void putBinary(int number)//将一个int整形数字的二进制形式正序,倒序输出 { int value; int i; for (i = 31; i >= 0;i--)//正序 { int value = number >> i & 1; printf("%d", value); } printf("\n"); for (i = 0; i <

【C语言】《C Primer Plus》递归:以二进制形式输出整数

/* binary.c -- prints integer in binary form */#include <stdio.h>void to_binary(unsigned long n); int main(void){ unsigned long number; printf("Enter an integer (q to quit):\n"); while (scanf("%ul", &number) == 1) { printf(&q

C语言中如何用printf函数输出百分号?

打两个%%..比如printf( "%%\n" );就可以输出一个百分号.同理,输出两个百分号的话就需要写四个. #include <stdio.h> int main(int argc, const char * argv[]) { printf("%%%%");//printf函数打印 % 字符要用 %% 才能打印 return 0; }

将正整数转化成二进制形式输出

public class SimpleTest { @Test public void test(){ //方法一 System.out.println(Integer.toBinaryString(50)); //方法二 StringBuilder sb = new StringBuilder(); int b = 50; for(int n = b;n > 0;n = (n/2)){ int r = n % 2; sb.append(r); } System.out.println(sb.r