当前位置: 代码迷 >> C语言 >> 太无趣了 今晚决定在C版考古
  详细解决方案

太无趣了 今晚决定在C版考古

热度:190   发布时间:2008-05-12 23:28:44.0
太无趣了 今晚决定在C版考古
这个问题困惑了我好久   大虾们帮帮我

[[it] 本帖最后由 liyanhong 于 2008-5-17 20:47 编辑 [/it]]
搜索更多相关的解决方案: 考古  

----------------解决方案--------------------------------------------------------
dectobin(int i)
{
   do {
       printf("i&0x01"); // 把输出的各位记录下来就好了
       i >= 1;
    }
}
本帖最近评分记录
2008-05-12 15:39:36
lujian0015

等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-2
  得分:0 
强啊,佩服
----------------解决方案--------------------------------------------------------
这样不可以的
~~~~~~~~~~~~~~~~

    李彦宏同志,您应该把二进制数以数组形式存放输出。不然你的存放二进制的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;
}
----------------解决方案--------------------------------------------------------
发生地震了,当然都看电视了
----------------解决方案--------------------------------------------------------
各位编程的时候能不能加上注释啊
----------------解决方案--------------------------------------------------------
  相关解决方案