编程成长日记——求一个数的二进制

这篇编程成长日记探讨了如何通过位右移和除法两种方法来获取一个数的二进制表示。位右移一位相当于数除以2,而使用除法求二进制需要注意数据类型,应使用unsigned int以避免负数和范围限制问题。
摘要由CSDN通过智能技术生成

关于按位与&和逻辑右移>>

求一个数的二进制的时候,可以采用这种方法,向右移一位,相当于除以二,所以有以下代码:

#include<stdio.h>
//求一个数的二进制 
int main() 
{ 
   char arr[32];
   int num=0;
   int i=0;
   printf("请输入一个数字:");
   scanf("%d",&num);
   for(i=0;i<32;i++)
   {
 	  arr[i]=(num>>i)&1; 		
   }
   for(;i;i--)
   {
 	  printf("%d",arr[i-1]);
   }  
   return 0;
}

当然还有除以二取余的办法:

#include<stdio.h>
#define n 32
//求一个数的二进制 
int main() 
{ 
 	unsigned int num = 0;
	int count = 0;
	int i;
	int arr[n];
	printf("请输入一个数字\n");	
	scanf("%d",&num);
	printf("%d的二进制数为:",num);	
	for (i=0;i<n;i++)
	{
		arr[i]=num%2;
		num=num/2;
	}	
	for (i=n;i;i--)
	{
		printf("%d",arr[i-1]);
	}
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值