zoukankan      html  css  js  c++  java
  • 二进制和十进制的相互转换

    整数转换为二进制输出
    #include <stdio.h>
    #include <string.h>

    int main(int argc, char *argv[])
    {
       char bin[8 * sizeof(int)];
       int n = 0;
       int index;

       scanf("%d", &n);
     
      for(index = (8 * sizeof(int) - 1); index >= 0; index--)
       {
         bin[index] = (n & 1) + '0';
         n >>= 1;
     
       }
       bin[8 * sizeof(int)] = '';
       int i = 0;
       for(index = 0; index <= (8 * sizeof(int) - 1); index++)
       {
         // int i;
         ++i;
         putchar(bin[index]);
         if(i % 4 == 0)
        {
           putchar(' ');
         }
       }
       putchar(' ');
     
       return 0;
     }

    二进制数,转换为对应的十进制

    #include <stdio.h>
    #include <string.h>

    int integer(const char *str);

    int main(int argc, char *argv[])
    {
      char *pbin = "01001001";
      int inter = 0;

      inter = integer(pbin);

      return 0;
    }

     int integer(const char *str)
     {
      int i, j, index;
      int count = 0;
      int in[strlen(str)];//定义一个数组来存储二进制每个位对应的数字

      for(i = 0; i < (strlen(str)); i++)//strlen(str),计算字符个数,结果为8而不是9
       {
        int sum = 1;//每一次循环都要将sum的值重新设置为1
        for(j = (strlen(str) - 1 - i); j > 0; j--)//j为对应的位所要计算的阶乘,从右往左数
         {
          sum *= ((str[i] - '0') * 2);//str[i] - '0',表示将字符转换为数字,str[i] + '0',表示将数字转化为字符
         }

        count += sum;//count保存每次小循环得到的sum值
       }
       printf("%d ", count);
       return count;
    }

  • 相关阅读:
    简时——alpha冲刺任务九(5.7)
    简时——alpha冲刺任务八(5.6)
    SE_Work4_软件案例分析
    SE_Work3_结队项目
    随机生成器——起源
    SE_Work2_交点个数
    SE_Work1_阅读构建之法&项目管理实践
    SE_Work0_回顾与展望
    OO_Unit4_UML模型化设计
    OO_Unit3_JML规格模式
  • 原文地址:https://www.cnblogs.com/timemachine213/p/8325473.html
Copyright © 2011-2022 走看看