C语言练习 通过移位算法10进制转2进制

通过移位算法10进制转2进制

C语言实现

代码参考C Primer Plus 第15章 位操作编程书后实例,修改而来

成都创新互联是专业的鹿寨网站建设公司,鹿寨接单;提供网站建设、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行鹿寨网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

代码如下

#include 
#include          //提供CHAR_BIT宏定义

char *itobs(long long int number, char *string);
void showBits(const char *string);

int main(int argc, char const *argv[])
{
    // CHAR_BIT是一个宏定义,定义了一个字节对应的位大小
    char bin_str[CHAR_BIT * sizeof(long long int) + 1]; // 声明了一个临时的数组,用来存放字符1,字符0,因为最后还有一个'\0',所以 + 1
    long long int number;
    puts("Please input long long int type number!,Another character to leave!");
    while ((scanf("%lld", &number) & 01) == 1)
    {
        itobs(number, bin_str);
        showBits(bin_str);
    }
    puts("bye!");
    return 0;
}

/**
 * @description 传入一个数字,和一个规定长度的字符串,向字符串中填充数字的二进制字符并返回
 * @param number 传入的long long int 类型数据
 * @param string 规定长度的(空)字符串,长度为 CHAR_BIT * sizeof(long long int) + 1 (+1为放置'\0')
 * @return string 返回填充好传入参数'string' 的二进制字符数组,可用于打印
 */
char *itobs(long long int number, char *string)
{
    const static long long int size = CHAR_BIT * sizeof(long long int); // 得到long long int的位大小
    for (long long int i = size - 1; i >= 0; i--, number >>= 1)         //这里必须为 >>=,也可以是 number = number >> 1; 得到的数字从后往前排序
    {
        string[i] = (number & 1) + '0';		//这里 & 1(或者 & 01(八进制1)),01为掩码,将其他的(除了0号位的位)置0.得到的结果是数1/0,加上字符'0'得到字符'1'/'0'
    }
    string[size] = '\0';
    return string;
}

/**
 * @description 用于打印数组中写好的二进制的字符 (4个为一组)
 * @param string 传入的字符串
 * @return void
 */
void showBits(const char *string)
{
    long long int i = 0;
    while (string[i])
    {
        putchar(string[i]);
        if (++i % 4 == 0 && string[i])
        {
            putchar(' ');
        }
    }
    putchar('\n');
}

文章名称:C语言练习 通过移位算法10进制转2进制
当前路径:http://bzwzjz.com/article/dsoipdd.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都商城网站制作 上市集团网站建设 成都网站建设 网站建设方案 成都定制网站建设 成都营销网站建设 成都企业网站制作 成都网站设计公司 网站设计公司 高端网站建设 企业网站制作 成都网站建设 成都网站制作 成都网站制作 四川成都网站建设 专业网站设计 成都做网站建设公司 成都企业网站设计 成都h5网站建设 重庆电商网站建设 重庆网站制作 梓潼网站设计