c语言中十进制转二进制显示小工具的实现代码

 更新时间:2013年05月14日 17:15:59   作者:  
本篇文章是对c语言中十进制转二进制显示小工具的实现代码进行了详细的分析的介绍,需要的朋友参考下

计算器在显示二进制位数时候,如果开头是0.是不会显示的,对于在单片机混的人,这个有时候很麻烦,所以写个小工具.

功能就是输入十进制数字,然后显示出2进制,每显示4位一次空格,可以调整位数范围(8的倍数)

如果有谁能知道linux下类似win7的那个计算器,麻烦回复告知一下吧.很是感谢~

例如:

$ dec2bin 1 135
Num 8 Binary is : 0B1000 0111
done!
===============================

$ dec2bin 2 135
Num 16 Binary is : 0B0000 0000 1000 0111
done!
===============================

代码如下:

===========================================================

复制代码 代码如下:

/*
 * =======================================================================
 *
 *       Filename:  dec2bin.c
 *
 *    Description:  dec to binary show
 * =======================================================================
 */
#include <stdio.h>
#include <stdlib.h>

#define HALF_CHAR 4

void bit_print(int bit_num, int a);

int main(int argc, char **argv)
{
    if (argc != 3) {
        printf("use: name num dec\n");
        exit(1);
    }

    bit_print(atoi(argv[1]),atoi(argv[2]));
    printf("done!\n");

    return 0;
}

void bit_print(int bit_num, int a)
{
    int i;
    int n = sizeof(char) * 8 * bit_num;

    int mask = 1 << (n - 1);

    printf("Num %d Binary is : 0B", (bit_num * 8));
    for (i = 1; i <= n; ++i) {
        putchar(((a & mask) == 0) ? '0' : '1');
        a <<= 1;
        if (i % HALF_CHAR == 0 && i < n)
            putchar(' ');
    }
    putchar('\n');
}


相关文章

  • 解析C语言基于UDP协议进行Socket编程的要点

    解析C语言基于UDP协议进行Socket编程的要点

    这篇文章主要介绍了C语言通过UDP协议进行Socket编程的要点,文中还提到了相关ARP与ICMP协议的作用,需要的朋友可以参考下
    2016-02-02
  • 一文带你初识C++和命名空间

    一文带你初识C++和命名空间

    C++是在C语言基础上发展的面向对象语言,C++支持过程化、面向对象及抽象数据类型的程序设计,C++的发展包括多个版本,下面这篇文章主要介绍了一文带你初识C++和命名空间的相关资料,需要的朋友可以参考下
    2024-10-10
  • C++中命名空间(namespace)详解及其作用介绍

    C++中命名空间(namespace)详解及其作用介绍

    考虑一种情况,当我们有两个同名的人,Zara,在同一个班里。当我们需要对它们进行区分我们必须使用一些额外的信息和它们的名字,比如它们生活在不同的区域或者兴趣爱好什么的,在C++程序中也会遇到同样的情况,所以命名空间就此产生
    2022-08-08
  • C语言按关键字搜索文件夹中文件的方法

    C语言按关键字搜索文件夹中文件的方法

    这篇文章主要介绍了C语言按关键字搜索文件夹中文件的方法,涉及C语言文件操作及字符串查找的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C++中vector容器的注意事项总结

    C++中vector容器的注意事项总结

    在c++中,vector是一个十分有用的容器,下面这篇文章主要给大家介绍了关于C++中vector容器的注意事项,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • C语言 结构体(Struct)详解及示例代码

    C语言 结构体(Struct)详解及示例代码

    本文主要介绍C语言 结构体的知识,学习C语言肯定需要学习结构体,这里详细说明了结构体并附示例代码,供大家参考学习,有需要的小伙伴可以参考下
    2016-08-08
  • C++实现KDTree 附完整代码

    C++实现KDTree 附完整代码

    这篇文章主要介绍了C++实现KDTree的代码详解,包括kdTree概念介绍及分割的作用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结

    深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结

    本篇文章是对C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程进行了总结与分析,需要的朋友参考下
    2013-05-05
  • C++中智能指针最常用的shared_ptr和unique_ptr

    C++中智能指针最常用的shared_ptr和unique_ptr

    C++中的智能指针最常用的是shared_ptr和unique_ptr,C++新手最常问的问题是我从一个函数中拿到unique_ptr,但要转成shared_ptr才能使用,要怎么转换?同理是否能将shared_ptr转换成unique_ptr,面对这些问题,跟随小编一起看看吧
    2022-08-08
  • 如何统计在一篇文章中某个单词出现了几次,以及第一次出现的位置

    如何统计在一篇文章中某个单词出现了几次,以及第一次出现的位置

    本文的主要内容就是统计某个单词在一篇文章中出现了几次,以及第一次出现的位置,需要的朋友可以参考下
    2015-08-08

最新评论