zoukankan      html  css  js  c++  java
  • unxi及linux下实现2进制输出

    我们知道unix和linux下是不能使用itoa函数的,那么怎么实现把一个10进制数转换为2进制数,前面补0输出呢?

    unsigned long lResult,temp,n;
    char reg[9];
    n=128;
    lResult=0; 
    temp=1;
    while(n>0)
    {
    
    lResult += (n & 1)*temp;
    temp *= 10;
    n=n>>1;
    }
    //得到的IResult为一个10进制数显示上于n的二进制一样,比如n为128,得到的IResult为10000000
    //因为设的reg为9位,所以IResult不要超过8位,最后一位sprintf函数自动补\0
    //如果超过8位,字符串就乱了因为\0没了。
    sprintf(reg,"%08d",lResult);    //sprintf可以把一个数以某种形式变为字符串,本例使用它变成8位的输出,前面不足补0
    printf("%s",reg);


    /* 如果不想输出字符串,也可以直接输出数字 */
    printf("%08d",lResult);
  • 相关阅读:
    Spring cloud学习总结
    Spring boot学习笔记
    Rabbitmq安装步骤
    Mongodb 笔记采坑
    Rabbit Docker 部署及采坑
    各种知识汇总
    Echart 随便写的
    Linux常用命令
    Redis学习笔记
    Docker使用总结
  • 原文地址:https://www.cnblogs.com/dongl/p/3057874.html
Copyright © 2011-2022 走看看