c語言中十進位轉二進位顯示小工具的實現代碼

來源:互聯網
上載者:User

計算機在顯示二進位位元時候,如果開頭是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');
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.