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

  • 相关阅读:
    TCP/UDP模型
    分时技术
    Linux文件浏览命令
    Maven下载私服上的jar包(全局)
    Maven下载私服上的jar包
    Maven将中央仓库修改为阿里云的仓库地址
    数据结构之算法初涉(2)
    数据结构之概念初涉(1)
    JAVA中GridBagLayout布局管理器应用详解
    C++数据结构中的基本算法排序
  • 原文地址:https://www.cnblogs.com/timemachine213/p/8325473.html
Copyright © 2011-2022 走看看