1. 首页 > 科技

C++十进制二进制相互转化? 二进制转十进制c语言

C++十进制二进制相互转化?二进制转十进制c语言

C语言中十进制和二进制怎么转换

10000101 对于这个来说  一般 最高位 为 符号位 0为+, 1为-  所以为 -5;

short类型占2个字节,也就是 16位, 最大值为0111 1111 1111 1111。

进制之间的 转换,比如 10进制92 转换成 2进制,92/2 = 46 余数是 0,46/2 = 23 余数是 0,23/2 = 11 余数是 1, 11/2 = 5, 余数是1, 5/2 = 2,余数是 1, 2/2 = 1, 余数是 0, 所以2进制为 0111100(这里面的余数是从后往前计的)。

C语言十进制转化为二进制

 #include <stdio.h>

#include <conio.h>

int turn2(int i);

main()

{

 int i,j,m;

 int a[100];

 printf("please enter a number here");

 scanf("%d",&i);

 m=0;

 while(i>0)

 {

  j=turn2(i);

  i=i/2;

  a[m]=j;

  m++;

 }

 m--;

 while(m>=0)

 {

  printf("%d",a[m]);

  m--;

 }

 printf("\n");

 getch();

}

int turn2(int i)

{

 int t;

 

 t=i%2;

 

 return(t);

}

 

3楼的少年,老式的C语言,函数不加返回类型默认是返回int的,可以不加。当然最好还是加上。

C语言十进制转二进制

呵呵这样做的确输出的是反过来的数

方法一:

可以利用数组顺序存储转换过程中依次得到每个数字位,

转换结束后再按相反的次序输出数组内容即可得到正确的结果。

方法二:

直接搞掂,这才叫强!!!

且看我如何强法!!

#include <stdio.h>

void trans(int x)

{

int a[30];//我算过了,1亿好像才29位的二进制,一般不用算

//这么大的数了吧~~

int i=0,rem;

do{

rem=x%2;x=x/2;

a[i]=rem;

i++;

}while(x!=0);//这个算法看你的代码知道你懂!:)

while(i>0)

printf("%d",a[--i]);

printf("\n");//这就是我的精华了,倒输出正确顺序的数~

}

void main()

{

int d;

printf("请输入一个十进制的正整数:\n");

do scanf("%d",&d);while(d<0);

trans(d);

}

我觉得楼主的水平也不差,

应该看得懂吧

我只是加了几句而已

加分哦:)

c语言编程,如何将十进制转化为2进制

c语言编程将十进制转化为2进制可按手工转换规则进行程序转换。

整数占四个字节,每字节8位,共32位。所以,可以定义一个32位的数组来存储转换结果。

循环将整数进行除2取余数,余数存储到数组中。

当整数整除为0时,结束循环

逆序输出数组,得到转换结果

参考代码:

#include <stdio.h>

void main()

{

    int c[32],i=0,n;

    scanf("%d", &n) ; //输入待转换整数n

    do {

        c[i++]=n%2;

        n/=2;

    } while(n!=0) ;

    for(i--;i>=0;i--)

        printf("%d",c[i] );

    printf("\n");

}