C语言有符号整数最小值,16位带符号整数为什么是
公告: 為響應(yīng)國(guó)家凈網(wǎng)行動(dòng),部分內(nèi)容已經(jīng)刪除,感謝讀者理解。
話題:16位帶符號(hào)整數(shù)為什么是回答:剩下15位二進(jìn)制數(shù)的最大值是每一位數(shù)都是1的情況,即2^15-1=326.326化成二進(jìn)制為1000 0000 0000 0000,對(duì)于帶符號(hào)整數(shù)來(lái)說(shuō)就是-0.話題:關(guān)于C語(yǔ)言中有符號(hào)的整數(shù)值范圍為什么是從回答:這是一種過(guò)時(shí)的說(shuō)法了,只有在比較古老的書(shū)上才可以看到。對(duì)于有符號(hào)整型,也就是int型,是和編譯器的字長(zhǎng)有關(guān)的,只有在16位編譯器上,int類(lèi)型占2個(gè)字節(jié),其表示范圍才是-326~326; 對(duì)于32位和64位編譯器,int類(lèi)型占4字節(jié),表示范圍為-2144364~2144364。以16位編譯器為例,介紹其原理,對(duì)于32位和64位類(lèi)似。int為有符號(hào)整型數(shù),在16位編譯器上占2字節(jié)16位。對(duì)于有符號(hào)數(shù),計(jì)算機(jī)中表達(dá)時(shí),最高位約定為符號(hào)位,當(dāng)符號(hào)位為0時(shí)為正數(shù),符號(hào)位為1時(shí)為負(fù)數(shù)。所以真正表達(dá)值的部分是剩余的15位,這15位的范圍就是二進(jìn)制的000 0000 0000 0000到111 1111 1111 1111。轉(zhuǎn)換成十進(jìn)制也就是0~326。所以,正數(shù)的表示范圍就是1~326. 其中有一個(gè)特殊的值,就是0值,對(duì)于符號(hào)位1和0的時(shí)候,值都是0,用兩個(gè)形式表示同一個(gè)數(shù)無(wú)疑是浪的,符號(hào)位為1時(shí)的全0,就用來(lái)表達(dá)-326了,這也是負(fù)數(shù)表示的范圍比正數(shù)多1的原因。綜上,對(duì)于任意位的,無(wú)論是位,16位,32位甚至64位的整數(shù)類(lèi)型表示范圍的計(jì)算公式為:如總位數(shù)為n位,那么有符號(hào)數(shù)的范圍為-2^(n-1) ~ 2^(n-1)-1無(wú)符號(hào)數(shù)的表示范圍為:0~2^n-1在這個(gè)公式中,^表示乘方。2^n就是2的n次冪。
參考回答:-2^15~(2^15-1)計(jì)算機(jī)中數(shù)字是以補(bǔ)碼存儲(chǔ)的主要原因:使用補(bǔ)碼,可以將符號(hào)位和其它位統(tǒng)一處理;同時(shí),減法也可按加法來(lái)處理。另外,兩個(gè)用補(bǔ) 碼表示的數(shù)相加時(shí),如果最高位(符號(hào)位)有進(jìn)位,則進(jìn)位被舍棄。在C中,用高位置1來(lái)表示負(fù)數(shù),int型占兩個(gè)字節(jié)共16位,326的二進(jìn)制是10000000,00000000,高位為1,系統(tǒng)會(huì)認(rèn)為是負(fù)數(shù),所以326需要用長(zhǎng)型表示,占四個(gè)字節(jié)。最高位就不是1了。(00000000,00000000,10000000,00000000) -326在內(nèi)存中的表示是10000000,00000000。過(guò)程是:先讀入正值326(10000000,00000000),再取反(01111111,11111111),再加1(10000000,00000000)話題:16位帶符號(hào)整數(shù)為什么是回答:首先,我們來(lái)一下,最大整數(shù)011后面15個(gè)1,其值=2^14+2^13++2^0根據(jù)等比數(shù)例求和公式{an},sn=a1+a2++ansn=a1(1-q^n)/(1-q)顯然 此刻 a1=1, q=2, n=15所以2^15-1但是總共能表達(dá) 2^16-1個(gè)數(shù)。。。。所以負(fù)數(shù)就是。。。
參考回答:若帶符號(hào),則最多可以表示:2^15-1個(gè)數(shù)↑錯(cuò)!是2^16個(gè)數(shù)。除非你把0x0000排除。根據(jù)等比數(shù)例求和公式 ……↑沒(méi)必要這么復(fù)雜。__說(shuō)的基本正確。n位的p進(jìn)制型數(shù)對(duì)應(yīng)p^n個(gè)不同的。符號(hào)型整形數(shù)的第一個(gè)位是符號(hào)位,但不影響數(shù)值的總和。因?yàn)橐呀?jīng)保證整型數(shù)中沒(méi)有任何一個(gè)范圍內(nèi)的數(shù)重復(fù)的int來(lái)表示。所以16位二制數(shù)表示2^16個(gè)不同的數(shù)。由符號(hào)型整形數(shù)的編碼約定(非負(fù)數(shù)取原碼,負(fù)數(shù)取補(bǔ)碼(按位求反后的結(jié)果加一),多出來(lái)的+0(符號(hào)和數(shù)值位都是1,這里是0xffff)表示2的數(shù)值位次冪的相反數(shù),這里是-2^(16-1)=-326),0x0000為0……0xfff為326,0x000為-326,0x001為-3266……0xffff為-1。話題:十六位機(jī)的有符號(hào)數(shù)的范圍是回答:因?yàn)?6位機(jī)有2的16次方的數(shù)字范圍,而有符號(hào),即第一位為符號(hào)位,所以范圍為負(fù)2的15次方到2的15次方-1話題:十六位機(jī)的有符號(hào)數(shù)的范圍是回答:因?yàn)?6位機(jī)有2的16次方的數(shù)字范圍,而有符號(hào),即第一位為符號(hào)位,所以范圍為負(fù)2的15次方到2的15次方-1話題:16位的二進(jìn)制,為什么能表示的范圍是回答:2^15=326,就是說(shuō)0~326要15位二進(jìn)制數(shù)表示;同理,-326~-1,也要15位二進(jìn)制數(shù)表示;-326~326就要16位二進(jìn)制表示,至于怎么表示,就是定了.一般最高位是符號(hào)位,1表示負(fù),0表示正.15位二進(jìn)制可表示0~326,15位二進(jìn)制也可表示-326~-1,這只是個(gè)對(duì)應(yīng)問(wèn)題.話題:有符號(hào)2字節(jié)整型數(shù),最小值為什么是回答:如果機(jī)械地按照補(bǔ)碼的則,16位二進(jìn)制補(bǔ)碼的表示范圍是-326~+326,其中,有兩個(gè)0,即-0和+0。但實(shí)際應(yīng)用中,0是不需要有符號(hào)的,所以就將-0人為地定為-326了。話題:在16位字長(zhǎng)的機(jī)器上,十進(jìn)制有符號(hào)數(shù)范圍是怎么推導(dǎo)出來(lái)的?回答:最小數(shù)本是-326,只是有一個(gè)0的問(wèn)題,兩種表示一個(gè)0有點(diǎn)浪,所以人為定用-0表示-326,+0表示0
參考回答:這是整型,應(yīng)該算短整型.類(lèi)型說(shuō)明符為short int或short,在內(nèi)存中占2個(gè)字節(jié),其取值為短整常數(shù)。話題:C語(yǔ)言的int 為什么最小值是回答:1 C語(yǔ)言中,int若是定大小為兩個(gè)字節(jié),則其最小值就是-3262 原因兩個(gè)字節(jié)是16位,定第一位為符號(hào)位,則其能表示的數(shù)值范圍是-2^15~2^15-1,即-326~326。但最小值為什么是-326,為什么不是-326呢?原來(lái)人們發(fā)現(xiàn)若是在內(nèi)存中直接存放數(shù)的原碼,則0000 0000 0000 0000和1000 0000 0000 0000分別表示+0和-0,其值都是0,用兩個(gè)值表示同一個(gè)值,這樣太浪空間了。于是人們最后決定在內(nèi)存中存放數(shù)的補(bǔ)碼,這樣+0和-0的存放形式就都是0000 0000 0000 0000了,但是同時(shí)也多出來(lái)一個(gè)1111 1111 1111 1111,它并不是任何一個(gè)數(shù)的補(bǔ)碼,于是將其定為-326。
參考回答:計(jì)算機(jī)用二進(jìn)制表示負(fù)數(shù)是用的“補(bǔ)碼法”,做法是正數(shù)按原碼,負(fù)數(shù)用其相反數(shù)的反碼加一。 這種結(jié)果用-326替了“-0”,可以使符號(hào)位能與有效值部分一起參加運(yùn)算,從而簡(jiǎn)化運(yùn)算則;同時(shí)使減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算,進(jìn)一步簡(jiǎn)化計(jì)算機(jī)中運(yùn)算器的線路設(shè)計(jì)。 舉例: 3的碼值是 00000011,-3則為:11111100+1= 11111101 326的碼值是01111111,11111111(15個(gè)1),-326是 10000000,00000000+1=10000000,00000001 -326是01111111,11111111+1=10000000,00000000話題:c語(yǔ)言,16位里326的原碼是多少?回答:C語(yǔ)言里面不存在原碼表示這種碼制,只有無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)的補(bǔ)碼表示。這里面,實(shí)際上應(yīng)該說(shuō)清楚要表示的是+326,還是-326的。如果是+326:如果是無(wú)符號(hào)數(shù),無(wú)符號(hào)數(shù)326=2^15用16位二進(jìn)制數(shù)表示為1000 0000 0000 0000。如果是帶符號(hào)數(shù),16位補(bǔ)碼表示的范圍是-326到326,是不可能表示326的。但32位補(bǔ)碼就可以表示326了。如果是-326:如果是無(wú)符號(hào)數(shù),當(dāng)然不可以表示負(fù)數(shù)了。如果是帶符號(hào)數(shù),16位補(bǔ)碼表示的范圍是-326到326,剛好就能表示-326,二進(jìn)制碼為1000 0000 0000 0000(和上面給的是一樣的)。32位補(bǔ)碼表示-326就是在上面16位的前面再加上16個(gè)1,也就是 1111 1111 1111 1111 1000 0000 0000 0000。
參考回答:2^16 = 326(10) = 1000000000000000 (2)
總結(jié)
以上是生活随笔為你收集整理的C语言有符号整数最小值,16位带符号整数为什么是的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 大连Linux内核开发,如何查看linu
- 下一篇: 慈善机构怎么申请