• 二进制和十进制的相互转换


    整数转换为二进制输出
    #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;
    }

  • 相关阅读:
    python入门:字符编码
    python入门:字符串2
    使用keepalived实现高可用
    基于sersync实现实时同步
    kubeadm 的工作原理
    docker-stop不能停止容器
    kubernetes 中的证书工作机制
    docker-hub中python的tag都代表什么意思
    MFS 介绍
    安装sngrep线路抓包工具
  • 原文地址:https://www.cnblogs.com/timemachine213/p/8325473.html
Copyright © 2020-2023  润新知