這篇文章將為大家詳細(xì)講解有關(guān)C語(yǔ)言中無(wú)符號(hào)與有符號(hào)的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
C語(yǔ)言中無(wú)符號(hào)與有符號(hào)問(wèn)題
unsigned char a[5] = { 12,36,96,128,182 };
a[]范圍為0~256. 數(shù)組中數(shù)都有效。
char a[5] = { 12,36,96,128,182 };
a[]范圍為-128~127. 數(shù)組中128和182均無(wú)效。
C語(yǔ)言中無(wú)符號(hào)數(shù)和有符號(hào)數(shù)相加問(wèn)題
看個(gè)題:
#includeint main() { unsigned int a=6; int b=-20; printf("%d\n",a+b); (a+b)>6? puts(">6"):puts("<=6"); return 0; }
結(jié)果是:-14 >6
意想不到吧?
為什么結(jié)果這樣呢?
原來(lái)有符號(hào)數(shù)和無(wú)符號(hào)數(shù)進(jìn)行比較運(yùn)算時(shí)(==,<,>,<=,>=),有符號(hào)數(shù)隱式轉(zhuǎn)換成了無(wú)符號(hào)數(shù)(即底層的補(bǔ)碼不變,但是此數(shù)從有符號(hào)數(shù)變成了無(wú)符號(hào)數(shù)),比如上面 (a+b)>6這個(gè)比較運(yùn)算,a+b=-14,-14的補(bǔ)碼為1111111111110010。此數(shù)進(jìn)行比較運(yùn)算時(shí),被當(dāng)成了無(wú)符號(hào)數(shù),它遠(yuǎn)遠(yuǎn)大于6,所以得到上述結(jié)果。
關(guān)于“C語(yǔ)言中無(wú)符號(hào)與有符號(hào)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。