在C語(yǔ)言的標(biāo)準(zhǔn)輸出中,有16進(jìn)制,10進(jìn)制和8進(jìn)制的輸出格式,但是沒(méi)有二進(jìn)制的輸出格式。所以要想輸出二進(jìn)制,只能靠自己寫(xiě)函數(shù)進(jìn)行輸出了。基本思想為通過(guò)移位操作+與操作取出各個(gè)位上的值,然后對(duì)其進(jìn)行輸出即可。
創(chuàng)新互聯(lián)建站專(zhuān)業(yè)為企業(yè)提供肅南裕固族自治網(wǎng)站建設(shè)、肅南裕固族自治做網(wǎng)站、肅南裕固族自治網(wǎng)站設(shè)計(jì)、肅南裕固族自治網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、肅南裕固族自治企業(yè)網(wǎng)站模板建站服務(wù),十年肅南裕固族自治做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
沒(méi)有專(zhuān)門(mén)的輸出二進(jìn)制語(yǔ)句 需要自己寫(xiě)函數(shù)。
數(shù)據(jù)在內(nèi)存中本來(lái)就是以二進(jìn)制補(bǔ)碼存放的,設(shè)法從高字節(jié)至低字節(jié)一個(gè)bit一個(gè)bit地輸出到屏幕上即可。根據(jù)題面要求,輸出過(guò)程還要做以下工作:從最高字節(jié)開(kāi)始檢測(cè),全0的字節(jié)略去;每8位增加輸出一個(gè)空格。
可以用 %x格式 輸出16進(jìn)制數(shù),16進(jìn)制一位拉4位,按8421分布,就是2進(jìn)制數(shù)。1個(gè)字節(jié)正好用2位16進(jìn)制表示,轉(zhuǎn)為8位2進(jìn)制。
C標(biāo)準(zhǔn)沒(méi)有輸出二進(jìn)制的,不過(guò)用itoa()可以實(shí)現(xiàn)到二進(jìn)的轉(zhuǎn)換 可以使用itoa函數(shù)把變量的數(shù)值轉(zhuǎn)換成2進(jìn)制字符串,再用輸出函數(shù)輸出。
c語(yǔ)言編程將十進(jìn)制轉(zhuǎn)化為2進(jìn)制可按手工轉(zhuǎn)換規(guī)則進(jìn)行程序轉(zhuǎn)換。整數(shù)占四個(gè)字節(jié),每字節(jié)8位,共32位。所以,可以定義一個(gè)32位的數(shù)組來(lái)存儲(chǔ)轉(zhuǎn)換結(jié)果。循環(huán)將整數(shù)進(jìn)行除2取余數(shù),余數(shù)存儲(chǔ)到數(shù)組中。
十進(jìn)制轉(zhuǎn)二進(jìn)制可以使用庫(kù)函數(shù)itoa。itoa函數(shù)原型:char*itoa(int value,char*string,int radix);功能:將任意類(lèi)型的數(shù)字轉(zhuǎn)換為字符串。在stdlib.h中與之有相反功能的函數(shù)是atoi。
思路:十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)采用除2取余,逆序排列法。
打開(kāi)visualC++0-文件-新建-文件-C++SourceFile。
十進(jìn)制轉(zhuǎn)二進(jìn)制可以使用庫(kù)函數(shù)itoa。itoa函數(shù)原型:char*itoa(int value,char*string,int radix);功能:將任意類(lèi)型的數(shù)字轉(zhuǎn)換為字符串。在stdlib.h中與之有相反功能的函數(shù)是atoi。
0或者1,所以需要*st-0來(lái)把字符轉(zhuǎn)換成數(shù)字。*st++為里循環(huán)取出每一個(gè)字符,++在后是先取值再加加.所以*st++-0就相當(dāng)于*st-0st++;這兩句。另外,你貼的代碼二進(jìn)制轉(zhuǎn)十進(jìn)制,不是十轉(zhuǎn)二進(jìn)制。
10進(jìn)制轉(zhuǎn)化為2進(jìn)制的算法非常簡(jiǎn)單,不斷除以2,每次的余數(shù)為低位數(shù),直到數(shù)為0??墒褂煤?jiǎn)單的遞歸實(shí)現(xiàn)這一過(guò)程。
你代碼錯(cuò)誤太多,while (i!=1)應(yīng)改為while (i!=0)而且余數(shù)應(yīng)該倒序輸出,你全給順序輸出了,而卻有些繁瑣的東西可以去掉。