۳ـ۷ برنامه زیر چاپ اعداد را در مبنای ۸ و ۱۰ و ۱۶ نمایش میدهد.
#include<stdio.h>
main ()
{
int x = 1234 , y = 0155 , z = 0xa06b ;
printf(“: %6u %6o %6x: \n”, x , y , z) ;
printf(“: %-6u %-6o %-6x: \n”, x , y , z) ;
printf(“: %#6u %#6o %#6X: \n” , x , y , z) ;
printf(“: %06u %06o %06X: “, x , y , z) ;
}
خروجی برنامه به صورت زیر خواهد بود که در اینجا نیز علامت “:” ابتدای میدان و پایان میدان را در هر خط نمایش میدهد.
: ۱۲۳۴ ۱۵۵ a06b:
:۱۲۳۴ ۱۵۵ a06b:
: ۱۲۳۴ ۰۱۵۵ ۰XA06B:
:۰۰۱۲۳۴ ۰۰۰۱۵۵ ۰۰A06B:
خط اول بدون استفاده از فلاگ، اعداد را بدون علامت و به ترتیب در مبناهای ۱۰، ۸ و ۱۶ در خروجی نمایش میدهد. خط دوم همان دادهها را با همان کاراکتر تبدیل و با استفاده از فلاگ “-” نشان میدهد که درنتیجه اعداد در فضای پیشبینیشده برای آنها از سمت چپ تراز شدهاند. در خط سوم از فلاگ “#” استفاده شده است. این فلاگ موجب میگردد که در جلوی اعداد در مبنای ۸ و ۱۶ بهترتیب “۰” و “۰x” ظاهر شود. همچنین به سبب استفاده از حرف بزرگ “X” در کاراکتر تبدیل، حروف موجود در اعداد مبنای ۱۶، در خروجی به صورت حروف بزرگ (یعنی ۰XA06B) ظاهر شدهاند. خط آخر نقش استفاده از فلاگ “۰” را نمایش میدهد. این فلاگ موجب میگردد که سمت چپ اعداد به تعداد لازم با صفر پر شود. در اینجا نیز به علت استفاده از حروف بزرگ “X” در کاراکتر تبدیل، حروف موجود در اعداد مبنای ۱۶، در خروجی به صورت حروف بزرگ ظاهر شدهاند.