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");
}