编程论坛's Archiver

liyanhong 发表于 2008-5-12 23:28

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

这个问题困惑了我好久   大虾们帮帮我[em05]

[[it] 本帖最后由 liyanhong 于 2008-5-17 20:47 编辑 [/it]]

vfdff 发表于 2008-5-12 23:39

dectobin(int i)
{
   do {
       printf("i&0x01"); // 把输出的各位记录下来就好了
       i >= 1;
    }
}

lujian0015 发表于 2008-5-13 00:42

强啊,佩服[tk05]

广陵绝唱 发表于 2008-5-13 02:13

这样不可以的

~~~~~~~~~~~~~~~~

    李彦宏同志,您应该把二进制数以数组形式存放输出。不然你的存放二进制的s值会很容易超出long的范围。

    根据你的题意和我的想法,写了个程序,不过整数部分成功了,小数部分和输出格式还未成功。时间太晚了,明天作好后发上来。

    好好学C,共同进步。

StarWing83 发表于 2008-5-13 06:08

我记得飞燕好像有个数字转2~36进制的代码……

StarWing83 发表于 2008-5-13 06:10

#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;
}

flyue 发表于 2008-5-16 21:37

用ssanf不是很好吗?

liaojuncong 发表于 2008-5-16 23:14

十转二,八,十六

#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;
}

flyue 发表于 2008-5-17 13:07

发生地震了,当然都看电视了

lndg 发表于 2008-5-17 20:39

各位编程的时候能不能加上注释啊

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.