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