十进制转二进制各种语言写法

C语言

             转化思路:“除2求余,逆序排序”,既就是用十进制数除以2,可以得到一个商和余数;将余数保存起来,用商再去除以二,再得到一个商和余数,反复进行,直到商小于1时结束;然后将之前所得的余数逆序输出,得到的就是该十进制数的二进制写法。
#include<stdio.h>
#define Num 2

int main(){	
int num;	
int a[16];	
int i=1,j;	
scanf("%d",&num);	
for(j=0;j<16;j++)
	{		
	i=num%Num;		
	num=num/Num;		
	a[j]=i;
		}	
		printf("该数二进制为:");	
		for(j=15;j>=0;j--)	
		{		
		printf("%d",a[j]);		
		if(j%4==0)		
			printf(" ");	
	}
		return 0;
}

#include<stdio.h>
 void printBinaryDigit(int n){	
        int sizeOfBits = sizeof(int) * 8;	
        int i = sizeOfBits - 1;
      	for(i = sizeOfBits - 1; i >= 0; i--)
 		{	
 			if(n & (1 << i))	
 				{			
 				        printf("1");	
 				        	}		
 		    else		{		
 		    	printf("0");	
 		  	}
 			} 	
 			printf("\n");
 			}
 			 int main(){ 
 			 	int n;	
 			 	for(n = -3; n <= 3; n++)
 			 		{		
 			 		    printBinaryDigit(n);	
 			 		}
 			 		 	return 0;
 			  }


                      输入1个无符号的十进制整数,
                      将其转换成二进制,并输出。(10分)

题目内容:从键盘输入1个小于65536的无符号的十进制整数,将其转换成16位二进制,并输出。
具体要求完成的功能如下:
1)如输入负数,则输出 “数据小于0”
2)如超过65535,则输出“超过最大数”
3)输出转换过的16位二进制数;
输入格式:输入一个小于65536的正整数输出格式:二进制数每8位数字后空一格,不足16位补0,行末没有空格。
输入样例:
7651
输出样例:
00000010 11111101```
#include<stdio.h>
int main(){
int a[16]={0},m,i,time;//数组会往后补0,但是不会往前

scanf("%d",&m);//输入一个整数m 
if(m>=0&&m<=65535)
{
	time=0;
	while(m!=0){
		time++;
		if(m%2==1){
			a[16-time]=1;
		}
		
		else if(m%2==0){
			a[16-time]=0;
		}
		m=m/2;//用除二法对十进制数进行转化 
	}
	for(i=0;i<=7;i++)
	{
		printf("%d",a[i]);
	}
	printf(" ");
	for(i=8;i<16;i++)
	{
		printf("%d",a[i]);
	 } 
}
 else if(m<0)
 printf("数据小于0");
 else
 printf("超过最大数");
 
 return 0;

}
python语言

                 python十进制转化为二进制
实例:给定一个非负十进制数n,如何将其转换成为一个二进制数?
输入:123
输出:1111011
输入:1363
输出:10101010011
输入:12
输出:1100
首先我们看一下二进制,由十进制来类比。考虑一个十进制数,8327,那么数字: 8 3 2 7权值:1000 100 10 1所以,
 值为 8*1000+3*100+2*10+7*1。
 同理,考察二进制数,10110110,
 那么数字:1 0 1 1 0 1 1 0
 权值:128 64 32 16 8 4 2 1所以,值为128+32+16+4+2=182通常,我们在面对问题的时候,需要分析问题,而分析问题,通常会从最简单的情况开始。所以,看一下最简单的数字的十进制和对应的二进制:
 

0                           0

      1                           1

      2                          10

      3                          11

      4                         100

      5                         101

      6                         110

      7                         111

      8                        1000

      9                        1001

     10                        1010

     11                        1011

     12                        1100

     13                        1101

     14                        1110
其中可以发现的规律有:
1、若n是偶数,则二进制数末尾数字是“0”,若n是奇数,则二进制数末尾数字是“1”。
2、如果n的二进制数可以表示为bk … b2 b1 b0,
那么如果n是偶数,那么n/2的二进制数可以表示为bk … b2 b1,
如果n是奇数,那么(n-1)/2的二进制数可以表示为bk … b2 b1。

                                  二进制的转换
def Dec2Bin(dec):   
 # 递归  
  result = ''    
  
  if dec:       
   result = Dec2Bin(dec // 2)        
   return result + str(dec % 2)    
   else:        return result
 def dec_to_bin(n):  
   if n < 0:  
    print("Please input a nonnegative integer next time. Bye!")   
    else:      
      original_N = n       
       suffix = ""       
        while n > 0:         
           suffix = str(n % 2) + suffix         
              n = n // 2     
                 # The input n = 0 is dealt with as a special case       
                  if suffix == "":          
                    suffix = "0"      
                      # print("The binary equivalent of", original_N, "is", suffix)      
                        return suffix

需要了解其他有关知识的可以加QQ群号
821400946

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值