tft每日頭條

 > 生活

 > c語言二進制文件輸出

c語言二進制文件輸出

生活 更新时间:2024-07-24 06:19:51
1.前言

在我們日常的編程中,有時候需要格式化輸出一個整形數據的二進制,但是在我們C語言中隻有輸出十進制:%d輸出十六進制:%x輸出單個字符:%c輸出字符串:%s輸出變量所在的地址:%p;而并沒有這種二進制對應的格式,所以需要我們手動來實現。

2.源碼實現

本篇博客給大家介紹兩種方法:1.通過庫函數itoa,需要包含頭文件:#include <stdlib.h>;2.通過十進制轉成二進制的常用方法——短除法;為方便大家使用,将兩種方法都封裝成了函數,源碼如下:

#include <stdio.h> #include <stdlib.h> #define uint32 unsigned int #define uint8 unsigned char void FuncOutputBin(uint32 value) { char string[33]; //形參類型uint32最大為32位,因此我這裡定義了大小為33的字符串數組存放 itoa(value, string, 2); printf("庫函數得到的二進制為:%s\r\n",string); } //用短除法的思想得到二進制,之後将數據從後往前讀取 void ShortDivOutputBin(uint32 input) { uint8 temp[33] = {0}; int i = 0; printf("短除法得到的二進制為:"); while(input) { temp[i] = input % 2; //取餘數存放到數組中,此為得到的二進制數 input = (uint32)input / 2; //短除,while中判斷是否除盡 i ; //存儲了一個二進制數,自加存儲下一個 } for(i--; i>=0; i--) //由于最後一次input為0無效,i還是自加了,因此最後一次自加的值是無用的,所以先自減,然後将餘數從後往前讀取 { printf("%d",temp[i]); } printf("\r\n"); } void main(void) { uint32 input = 0; printf("請輸入一個需要轉化為2進制的整形數據:"); scanf("%d", &input); FuncOutputBin(input); ShortDivOutputBin(input); }

itoa函數原型:char *itoa( int value, char *string,int radix)功能:将整形數據value轉化成需要的進制radix,然後将之以字符串的形式存放在string中;返回值:轉化成對應進制後的字符串的地址,也可以不使用返回值;它的三個參數依次為:value:需要轉化的整形數據;string:轉化成對應進制後的字符串的地址;radix :需要轉化的進制(我這裡需要轉化為2進制,所以填2);

3.結果展示

(有圖有真相咯~)

c語言二進制文件輸出(C語言中格式輸出二進制的兩種方法)1

放在最後,喜歡作者的歡迎關注我們的公衆号"腦補空間”,會為大家推送更多推文~

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved