<ruby id="tfdtx"><mark id="tfdtx"></mark></ruby>

<address id="tfdtx"><nobr id="tfdtx"><progress id="tfdtx"></progress></nobr></address>

<noframes id="tfdtx">
<form id="tfdtx"></form>

<form id="tfdtx"></form>

<sub id="tfdtx"></sub>

直播帶貨服務

計算機格式化輸出函數—printf()應用案例

案例描述】

輸入一個正整數,輸出該整數的二進制形式。

輸入:123

輸出:123(10)=1111011(2)

計算機格式化輸出函數—printf()應用案例

案例分析】

1、利用輸出控制符"%x"可以輸出正整數的十六進制形式。

2、利用輸出控制符"%o"(注意:是字母o,不是零)可以輸出正整數的八進制形式。

3、沒有輸出控制符輸出正整數的二進制形式。

4、利用stdlib.h的itoa函數,可以將整數轉換為二進制字符串。該函數需要用到字符串處理的相關知識,請參閱7.6部分。

5、輸出正整數m的形式可以使用以下思路:

(1)v=0x80000000,對應無符號整數的最高位(十六進制形式)

(2)f=0,標記是否已讀取m的最高二進制位(用于忽略二進制位的前導0)

(3)如果v與m按位與非零,則執行A、B。否則執行C:

A、f=1,標記已讀取m的最高二進制位

B、輸出1。轉(4)

C、如果f>0,則輸出0。轉(4)

(4)v按位右移一位

(5)如果v=0,則輸出結束。否則轉(3)

計算機格式化輸出函數—printf()應用案例

【參考代碼】

main()

{  unsigned long m,v=0x80000000;

   char f=0;

   scanf("%lu",&m);

   printf("%lu(10)=",m);

   while(v)

   {  if(v&m){f=1;printf("1");}

      else if(f!=0)printf("0");

  v>>=1;

   }

   printf("(2)");

 }


© Copyright 六六互聯.Some Rights Reserved.www.ic.vip
三级在线看中文字幕完整版