欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java不支持無(wú)符號(hào)整數(shù)

java不支持無(wú)符號(hào)整數(shù)?

問出這個(gè)問題來說明你這個(gè)C程序員是不合格的。

你只知道C里有"unsigned"類型,卻不知道這種數(shù)據(jù)的存儲(chǔ)方式。

事實(shí)上,不論unsigned還是signed,整型數(shù)據(jù)的存儲(chǔ)方式都是完全一樣的,都是補(bǔ)碼表示法,是不是signed無(wú)關(guān),跟±運(yùn)算也無(wú)關(guān)。

比如簡(jiǎn)單一點(diǎn),一個(gè)8位整數(shù),unsigned是0-255,signed是-128~127。兩者的存儲(chǔ)方式完全相同,±運(yùn)算也完全相同。區(qū)別是你看數(shù)據(jù)時(shí)的理解方式,比如8位全1,unsigned 理解為255(再+1變成0),而signed理解為-1(再+1也是0)。這就是補(bǔ)碼表示法的精髓,有無(wú)符號(hào)無(wú)差別,甚至加減法也幾乎無(wú)差別:補(bǔ)碼表示下,減法就是取反+1。你可以在C或java代碼里驗(yàn)證:a-b,和a+(~b)+1,二者是一樣的。

回到題主的問題,當(dāng)然先要明確程序員需要unsigned類型的原因和用途,不過據(jù)我的經(jīng)驗(yàn),通常都只是用來計(jì)數(shù),也只涉及到加減法和比較(比大小就是減法)。一般來說,直接改成signed就好,加減法照常使用,唯一的,在做比較時(shí),需要稍稍處理一下,比如:

兩個(gè)整數(shù)a,b用int存儲(chǔ)(實(shí)際是unsigned,可能超231,此時(shí)int會(huì)理解為負(fù)數(shù)),兩者比大小不要直接if(a<b),要改成:

int c=a-b;

if(c<0)

java判斷整數(shù),java不支持無(wú)符號(hào)整數(shù)