65536用二進(jìn)制怎么表示 65536在計(jì)算機(jī)內(nèi)的2進(jìn)制是多少?
65536在計(jì)算機(jī)內(nèi)的2進(jìn)制是多少?首先,不能將65536 Int存儲(chǔ)為兩個(gè)字節(jié)的容器,這意味著只能加載16位。因?yàn)?5535的二進(jìn)制表示是:10000000000有17位,所以我們只取最后16位為1
65536在計(jì)算機(jī)內(nèi)的2進(jìn)制是多少?
首先,不能將65536 Int存儲(chǔ)為兩個(gè)字節(jié)的容器,這意味著只能加載16位。因?yàn)?5535的二進(jìn)制表示是:10000000000有17位,所以我們只取最后16位為100000000000000。因此,當(dāng)我們將65536賦給一個(gè)無(wú)符號(hào)整數(shù)時(shí),我們只加載16位,因此最終結(jié)果是0截?cái)嘁粋€(gè)topic:topic prototype:Main(){double x=2.71828 printf(%d“,x)}以找到x的輸出:我自己的答案:首先找出double type在內(nèi)存中的存儲(chǔ)模式:然后取其最后32字節(jié)。2.71828的二進(jìn)制表示為10.10110,用二進(jìn)制科學(xué)記數(shù)法表示為1.010110*2的冪,所以2.71828在內(nèi)存中的表示是0符號(hào)位,順序碼101100000000000000000000000000000000000000000000的尾數(shù)部分是:010100000010000000000000000000000000000000000000000000000是在最后32位輸出的,但是我測(cè)試了一個(gè)像main(){int a=300 printf(%C“,a) }因?yàn)?00在內(nèi)存中是100101100,而且%C輸出一個(gè)8位字符,所以它是00101100=44。也就是說(shuō),ASCII為44的輸出是“,”,已經(jīng)過(guò)測(cè)試,是正確的。今天這兩個(gè)原理是一樣的,我認(rèn)真計(jì)算了內(nèi)存中的2.71828,真正的存儲(chǔ)是這樣的:010000000000101111110000110010101010111101100110000,我們拿出32位是10010101011110110010000,找出他原來(lái)的代碼是:-(110101001010101000011011111)1)=-110101001010101000011110000=-1783957616,如果是TC,則只有最后16位是1111011110010000,這也是負(fù)數(shù)。結(jié)果是-2160,所以最終結(jié)果是:VC:-1783957616:TC:-2160
一般來(lái)說(shuō),二進(jìn)制“0”表示0,應(yīng)該說(shuō)有進(jìn)位標(biāo)志。一個(gè)16位二進(jìn)制數(shù)可以表示的最大數(shù)是“2減去1的16次方”,即65535。將其寫(xiě)入二進(jìn)制文件是“111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111。如果將1與65535相加,將出現(xiàn)進(jìn)位,二進(jìn)制將變?yōu)椤?000000000000000”(“1”后跟16“0”),因此它是一個(gè)17位二進(jìn)制數(shù)。但是當(dāng)只有16位二進(jìn)制空間時(shí),它就變成了“100000000000000”(16個(gè)零)。如果沒(méi)有進(jìn)位標(biāo)志,則數(shù)字被解釋為0(即655351=0)。如果存在進(jìn)位標(biāo)志,則當(dāng)在操作中發(fā)生進(jìn)位時(shí),進(jìn)位標(biāo)志被設(shè)置為“1”,并且可以知道在進(jìn)位之后獲得16“0”,則該數(shù)字被理解為65536。BCD碼也是如此。BCD碼用4位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù),16位BCD碼能表示的最大數(shù)為9999。9999 1=0000進(jìn)位,如果沒(méi)有判斷進(jìn)位標(biāo)志,則結(jié)果為0,如果判斷進(jìn)位標(biāo)志,則結(jié)果為10000。
在二進(jìn)制計(jì)數(shù)時(shí)“0”為什么表示65536?
實(shí)模式下的尋址模式:這是由實(shí)模式下的寄存器決定的,因?yàn)榧拇嫫髦荒苁褂?6位,也就是說(shuō),地址中可以標(biāo)記16位二進(jìn)制數(shù)的地址單元,即所謂的段地址只能查找16位的數(shù)據(jù)。
Address物理地址(內(nèi)存),每個(gè)字節(jié)一個(gè)地址。
因此,最大地址可以表示2的第16次方地址,即尋址容量?jī)H為64K。由于缺少實(shí)模式地址,無(wú)法運(yùn)行大于64K的程序,因此偏移地址可用作段內(nèi)偏移。對(duì)于段地址,可以從20位CPU地址獲得。因此,段地址和偏移地址的左移四位之和就是實(shí)際的物理地址。
為什么要表示65536個(gè)不同的二進(jìn)制數(shù)需要64k個(gè)字節(jié)?
1、4字節(jié)表示的整數(shù)數(shù)為2^32≈40億,2字節(jié)表示的無(wú)符號(hào)整數(shù)數(shù)為2^16≈60000。
2、2G=2^31b≈20億字節(jié)。
3、為了找出出現(xiàn)次數(shù)最多的數(shù)字,應(yīng)記錄每個(gè)數(shù)字的出現(xiàn)次數(shù)。最快的方法是記錄每個(gè)數(shù)字在內(nèi)存中出現(xiàn)的次數(shù)。記錄方法是記錄相應(yīng)的存儲(chǔ)器地址數(shù)和相應(yīng)地址的存儲(chǔ)器單元數(shù)。但是,2G內(nèi)存只能記錄20億字節(jié)的數(shù)字,如果每個(gè)數(shù)字的出現(xiàn)次數(shù)大于255則會(huì)發(fā)生溢出,沒(méi)有風(fēng)險(xiǎn)。因此,這種方案是不可取的。
4、這樣,磁盤(pán)上只能記錄每次出現(xiàn)的次數(shù)。這樣,就在磁盤(pán)上創(chuàng)建了一個(gè)16g文件。每4個(gè)字節(jié)對(duì)應(yīng)一個(gè)整數(shù),可以對(duì)應(yīng)40億個(gè)整數(shù)。用于記錄相應(yīng)整數(shù)的個(gè)數(shù)。
1. 初始化文件。
2. 依次讀取數(shù)據(jù)并用無(wú)符號(hào)整數(shù)記錄在磁盤(pán)文件中。如果發(fā)生溢出,則該數(shù)字是次數(shù)最多的數(shù)字。
3. 從文件中讀取每個(gè)數(shù)字的次數(shù),用變量a記錄最高次數(shù),用變量B記錄最高次數(shù)的數(shù)據(jù),用文件依次記錄最高次數(shù)的數(shù)據(jù)。當(dāng)最大次數(shù)增加時(shí),a1和B被設(shè)置為1,并且該數(shù)字被寫(xiě)入文件中。當(dāng)出現(xiàn)相同次數(shù)的數(shù)字b1時(shí),該數(shù)字被寫(xiě)入文件的相應(yīng)位置,直到全部被讀取為止。
所以您根本不需要2G內(nèi)存。