太无趣了 今晚决定在C版考古
这个问题困惑了我好久 大虾们帮帮我[em05][[it] 本帖最后由 liyanhong 于 2008-5-17 20:47 编辑 [/it]] dectobin(int i)
{
do {
printf("i&0x01"); // 把输出的各位记录下来就好了
i >= 1;
}
} 强啊,佩服[tk05]
这样不可以的
~~~~~~~~~~~~~~~~李彦宏同志,您应该把二进制数以数组形式存放输出。不然你的存放二进制的s值会很容易超出long的范围。
根据你的题意和我的想法,写了个程序,不过整数部分成功了,小数部分和输出格式还未成功。时间太晚了,明天作好后发上来。
好好学C,共同进步。 我记得飞燕好像有个数字转2~36进制的代码…… #include <stdio.h>
#define P(n) putchar(n<10?n+48:55+n)
int NumConvert(int n, int k)
{
int b=n/k,a=(n%=k)<0?-n:n;
if(b)NumConvert(b,k),P(a);
else n<0&&putchar('-'),P(a);
return 0;
} 用ssanf不是很好吗?
十转二,八,十六
#include<stdio.h>int main()
{
int a,b=1,c=0,d,e,f,g,h;
printf("十进制\t二进制数\t八进制\t\t十六进制\n");
for(a=1;a<=256;a++){
printf("%d\t",a);
while(a>=b){
b=b*2;
c++;
}
b=b/2;
e=a;
while(c>0){
d=e/b;
printf("%d",d);
e=e%b;
b=b/2;
c--;
}
printf("\t\t");
b=1;
while(a>=b){
b=b*8;
c++;
}
b=b/8;
f=a;
while(c>0){
d=f/b;
printf("%d",d);
f=f%b;
b=b/8;
c--;
}
printf("\t\t");
b=1;
while(a>=b){
b=b*16;
c++;
}
b=b/16;
g=a;
while(c>0){
d=g/b;
h=d;
switch(h){
case 10: h='A'; printf("%c",h); break;
case 11: h='B'; printf("%c",h); break;
case 12: h='C'; printf("%c",h); break;
case 13: h='D'; printf("%c",h); break;
case 14: h='E'; printf("%c",h); break;
case 15: h='F'; printf("%c",h); break;
default:
printf("%d",d);
}
g=g%b;
b=b/16;
c--;
}
printf("\n");
b=1;
}
return 0;
} 发生地震了,当然都看电视了 各位编程的时候能不能加上注释啊
页:
[1]
