新聞中心
在Linux操作系統(tǒng)中,printf函數(shù)是一種非常重要的輸出函數(shù)。printf函數(shù)的主要作用是將數(shù)據(jù)按照指定的格式進(jìn)行輸出。在Linux中,我們可以使用printf函數(shù)輸出不同進(jìn)制的數(shù)據(jù),包括二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制。其中,二進(jìn)制輸出是一個比較獨(dú)特的輸出方式,它可以將數(shù)據(jù)以二進(jìn)制形式輸出,更為直觀和易懂。本篇文章主要就深入解析Linux printf函數(shù)輸出二進(jìn)制方式。

成都創(chuàng)新互聯(lián)是一家以成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、品牌設(shè)計、軟件運(yùn)維、營銷推廣、小程序App開發(fā)等移動開發(fā)為一體互聯(lián)網(wǎng)公司。已累計為塔吊租賃等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
一、printf函數(shù)輸出格式
printf函數(shù)的輸出格式主要包括以下幾種:
1. %d 用于輸出10進(jìn)制整數(shù);
2. %o 用于輸出8進(jìn)制整數(shù);
3. %x 用于輸出16進(jìn)制整數(shù),其中字母為小寫;
4. %X 用于輸出16進(jìn)制整數(shù),其中字母為大寫;
5. %f 用于輸出浮點(diǎn)數(shù),其中小數(shù)點(diǎn)后面的位數(shù)可以由精度指定;
6. %e 用于以指數(shù)形式輸出浮點(diǎn)數(shù),如1.23e-06;
7. %E 用于以指數(shù)形式輸出浮點(diǎn)數(shù),如1.23E-06;
8. %c 用于輸出一個字符;
9. %s 用于輸出一個字符串。
二、printf函數(shù)輸出2進(jìn)制方式
除了上述常見的輸出方式,printf函數(shù)還可以以二進(jìn)制方式輸出數(shù)據(jù),即%b格式。但是,該格式并不是C語言標(biāo)準(zhǔn)中規(guī)定的輸出格式,因此在Linux中不支持該格式。不過,我們可以通過一些方法來實(shí)現(xiàn)二進(jìn)制輸出。
在Linux中,如果要輸出二進(jìn)制數(shù),我們可以先將數(shù)據(jù)轉(zhuǎn)換成字符串的形式,然后再以字符串形式輸出。下面是一個例子:
#include
#include
#include
int mn()
{
int a=10;
char b[33]; //因?yàn)?2位整數(shù)最多32位
itoa(a,b,2); //將a轉(zhuǎn)換成2進(jìn)制的字符串
printf(“%s\n”,b);
return 0;
}
運(yùn)行結(jié)果為:1010
在上面的例子中,我們首先定義了一個整型變量a,并將其賦值為10。然后,我們定義了一個字符數(shù)組b,大小為33,因?yàn)?2位整數(shù)最多32位,再加上字符串結(jié)尾符號”\0″,所以要定義33位。接著,我們使用itoa函數(shù)將變量a轉(zhuǎn)換成二進(jìn)制的字符串,并存儲到字符數(shù)組b中。我們使用printf函數(shù)輸出字符串b的值,即可將二進(jìn)制數(shù)輸出到控制臺上。
三、如何輸出多個二進(jìn)制數(shù)
上述方法只適用于輸出單個整數(shù)的2進(jìn)制數(shù)值,如果我們要輸出多個整數(shù)對應(yīng)的2進(jìn)制數(shù)值,該如何操作呢?我們可以使用一個循環(huán)將所有整數(shù)轉(zhuǎn)換成二進(jìn)制字符串,然后再以字符串的形式輸出。下面是一個例子:
#include
#include
#include
#define N 5
int mn()
{
int a[N]={1,7,13,20,31};
char b[33]; //因?yàn)?2位整數(shù)最多32位
for(int i=0;i
{
itoa(a[i],b,2); //將a轉(zhuǎn)換成2進(jìn)制的字符串
printf(“%s “,b);
}
return 0;
}
運(yùn)行結(jié)果為:1 111 1101 10100 11111
在上面的例子中,我們首先定義了一個整型數(shù)組a,大小為5,并賦了初值。然后,我們定義了一個字符數(shù)組b,大小為33,因?yàn)?2位整數(shù)最多32位,再加上字符串結(jié)尾符號”\0″,所以要定義33位。接著,我們使用for循環(huán)依次將數(shù)組a中每個整數(shù)轉(zhuǎn)換成二進(jìn)制的字符串,并存儲到字符數(shù)組b中。我們使用printf函數(shù)輸出所有字符串b的值,即可將多個整數(shù)的二進(jìn)制數(shù)值輸出到控制臺上以空格隔開。
相關(guān)問題拓展閱讀:
- 2440 linux 如何在文件系統(tǒng)啟動后自動運(yùn)行我的程序?
2440 linux 如何在文件系統(tǒng)啟動后自動運(yùn)行我的程序?
開機(jī)后自動運(yùn)行用戶的應(yīng)用程序或啟動系統(tǒng)服務(wù)的命令保存在開發(fā)板根文件系統(tǒng)的/usr/etc/rc.local文件中。有的開發(fā)板開機(jī)后自動運(yùn)行圖形界面程序,需要按住ctrl+c讓開發(fā)板進(jìn)入到linux的SHELL提示符界面。其實(shí)可通過注釋掉rc.local文件中調(diào)用圖形界面的命令,增加運(yùn)行用戶應(yīng)用程序的命令,達(dá)到開機(jī)自動運(yùn)行用戶應(yīng)用程序的目的。
下面以我做的實(shí)驗(yàn)為例,描述具體的實(shí)現(xiàn)步驟。該方法源于網(wǎng)絡(luò),我加以驗(yàn)證,稍做修改,此文相當(dāng)于轉(zhuǎn)載。
1.進(jìn)入pc機(jī)的Linux 操作系統(tǒng),在/nfs/usr/下通過mkdir lz 命令新建一個名為lz的文件夾,進(jìn)入lz文件夾,通過mkdir hello新建一個hello文件夾用來存放我們將要編寫的hello.c文件和編譯生成的可執(zhí)行文件。
2.在/nfs/usr/lz/hello下通過vi hello.c命令新建hello.c文件,編輯如下測試程序:
#include
int main(){
printf(“Hello,test arm-linux!\n”);
return 0;
}
完成編輯后通過:wq保存后退出。
3.主機(jī)通過如下命令交叉編譯環(huán)境編譯hello.c:
#arm-linux-gcc –o hello hello.c
4.通過ls 命令可以看到在/nfs/usr/lz/hello/下已經(jīng)生成了hello可執(zhí)行文件,我們可以在開發(fā)板上通過./hello來測試自己編寫的hello.c執(zhí)行情況
5.修改rc.local文件,在文件的最戚凱后通過‘#’釋掉啟動圖形界面的指令,增加執(zhí)行用戶應(yīng)用程序hello的高鋒喚指令,具體實(shí)現(xiàn)如下:
#export PATH=$QPEDIR/bin:$PATH
#qtopia
#/usr/qtopia/bin/qtopia
/usr/lz/hello/./hello
注:前三行是注釋掉啟動圖形界面,最后一行是添加的執(zhí)行用戶的hello測試程序。
6.重啟開發(fā)板,通過vivi參數(shù)配置讓開發(fā)板通過nfs掛載主機(jī)上的文件系統(tǒng),基賣這時我們就可以通過超級終端看到開發(fā)板已經(jīng)運(yùn)行了我們編寫的hello程序。
可以用自啟動腳步來處理。
下面用自啟動apache為例:
自啟動手差御腳本:
/usr/local/apache2/bin;
./apachectl start
文件位于/etc/rc.d/慶敬init.d下,名為apached, 注意要可執(zhí)行。
#chmod +x /etc/rc.d/init.d/apached//設(shè)置文件的屬性為可執(zhí)行畢巖
#ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90apache//建立軟連接,快捷方式
#ln -s /etc/rc.d/init.d/apached /etc/rc0.d/K20apache
在Red Hat Linux中自動運(yùn)行程序。
你在早枯頃/etc目錄找一下類似rcS的文件,這些文件是系統(tǒng)啟動完成之后接著會運(yùn)行的腳本,
你想在系統(tǒng)啟動后運(yùn)行自己的運(yùn)用程序的話,可以考慮在這些腳本中添加代碼以完成你所希望的功能!
另外這些輸出默認(rèn)陸陸都是從console出來的!
希望可以幫助到你敗沖!
祝你好運(yùn)!
關(guān)于linux printf 2進(jìn)制的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
本文名稱:深入理解Linuxprintf函數(shù)輸出2進(jìn)制方式(linuxprintf2進(jìn)制)
文章路徑:http://www.dlmjj.cn/article/cceooeg.html


咨詢
建站咨詢
