真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

二進(jìn)制那些事-創(chuàng)新互聯(lián)

理清字符集和字符編碼關(guān)系中介紹到計(jì)算機(jī)內(nèi)部由集成電路決定了計(jì)算機(jī)的信息只能用二進(jìn)制數(shù)處理。本期將介紹二進(jìn)制那些事。

目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、封丘網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

移位運(yùn)算

移位運(yùn)算指的是將二進(jìn)制數(shù)值的各數(shù)位進(jìn)行左右移位的運(yùn)算。左移空出來(lái)的低位要進(jìn)行補(bǔ)0操作,右移空出來(lái)的高位要進(jìn)行怎樣的操作,我們會(huì)在后面說(shuō)明。
二進(jìn)制那些事

我們發(fā)現(xiàn),左移兩位相當(dāng)于對(duì)39乘以4,右移兩位相當(dāng)于除4,也就是說(shuō)計(jì)算機(jī)用移位算法來(lái)表示數(shù)據(jù)的乘除運(yùn)算。

補(bǔ)數(shù)

剛才之所有沒(méi)有介紹相關(guān)右移的內(nèi)容,是因?yàn)橛脕?lái)填充右移后空出來(lái)的高位的數(shù)值,有 0 和 1 兩種形式。要想?yún)^(qū)分什么時(shí)候補(bǔ)0什么時(shí)候補(bǔ)1,只要掌握了用二進(jìn)制數(shù)表示負(fù)數(shù)的方法即可。

二進(jìn)制數(shù)中表示負(fù)數(shù)時(shí),一般會(huì)把最高位作為符號(hào)來(lái)使用,也就是說(shuō),最高位是符號(hào)位。正數(shù)的符號(hào)位用0表示,負(fù)數(shù)的符號(hào)位用1表示。舉個(gè)栗子,1的二進(jìn)制數(shù)是0000 0001 ,那么,-1的二進(jìn)制數(shù)是多少呢?難道是1000 0001,1000 0001+0000 0001 結(jié)果不是0,說(shuō)明這個(gè)結(jié)果是錯(cuò)的。為此,在表示負(fù)數(shù)時(shí)就需要使用補(bǔ)數(shù)補(bǔ)數(shù)就是用正數(shù)表示負(fù)數(shù),通過(guò)將二進(jìn)制數(shù)的各位數(shù)值全部取反,然后再將結(jié)果加1得到補(bǔ)數(shù)。-1的補(bǔ)數(shù)是1111 1111。同理,1111 1110表示的負(fù)數(shù)是多少呢?這時(shí)我們可以利用負(fù)負(fù)得正這個(gè)性質(zhì)。假設(shè)1111 1110是負(fù)xx,那么1111 1110的補(bǔ)數(shù)是正xx。1111 1110的補(bǔ)數(shù)是0000 0010,因此1111 1110表示-2。

邏輯右移和算術(shù)右移

在介紹完補(bǔ)數(shù)后,讓我們返回到右移這個(gè)話題,右移之后在最高位有補(bǔ)0和補(bǔ)1兩種情況。當(dāng)二進(jìn)制數(shù)的值表示圖形模式而非數(shù)值時(shí),移位后在最高位補(bǔ)0,這是邏輯右移。將二進(jìn)制數(shù)值作為帶符號(hào)的數(shù)值進(jìn)行運(yùn)算時(shí),移位后要在最高位填充前符號(hào)位的值( 0 或 1 ),這是算術(shù)右移。

現(xiàn)在我們來(lái)看一個(gè)右移的例子。將-8(1111 1000)右移兩位。這時(shí),邏輯右移的情況下結(jié)果會(huì)是 0011 1110,也就是十進(jìn)制數(shù)62,顯然不是-2,而在算術(shù)右移的情況下,結(jié)果會(huì)變成1111 1110 ,用補(bǔ)數(shù)表示就是-2,和真實(shí)結(jié)果相同。需要注意的是只有在右移時(shí)才區(qū)分邏輯移位和算術(shù)移位。

二進(jìn)制數(shù)表示小數(shù)

通過(guò)上述介紹,我們對(duì)整數(shù)的二進(jìn)制表示方式做了說(shuō)明。由于計(jì)算機(jī)內(nèi)部所有信息都是以二進(jìn)制數(shù)的形式來(lái)處理,因此在這一點(diǎn)上,整數(shù)和小數(shù)并無(wú)差別。不過(guò),使用二進(jìn)制數(shù)表示整數(shù)和小數(shù)的方法卻有很大的不同。

由于二進(jìn)制數(shù)表示的小數(shù)的數(shù)值范圍是有限的,并不能表示所有的十進(jìn)制小數(shù)。例如:小數(shù)點(diǎn)后3位用二進(jìn)制數(shù)表示時(shí)的數(shù)值范圍為0.000~0.111,但是只能表示有限的十進(jìn)制小數(shù),如下圖所示。
二進(jìn)制那些事
為了加深大家印象,舉一個(gè)更加實(shí)際的栗子:將0.1累加100次最終結(jié)果是10.000002,不是10。

public class TestBinary {
    public static void main(String[] args) {
        float sum=0.0f;
        for (int i = 0; i < 100; i++) {
            sum += 0.1;
        }
        System.out.println(sum);

    }
}

浮點(diǎn)數(shù)

現(xiàn)在,我們應(yīng)該知道僅僅依靠紙面上的二進(jìn)制數(shù)是表示不了全部小數(shù)。那么,計(jì)算機(jī)實(shí)際上是以什么樣的表現(xiàn)形式來(lái)處理小數(shù)的呢?

目前,計(jì)算機(jī)提供了單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)來(lái)表示小數(shù)形式。單精度浮點(diǎn)數(shù)用32位表示全體小數(shù),而雙精度浮點(diǎn)數(shù)用64位表示。它們都是由符號(hào)、尾數(shù)和指數(shù)組成。
二進(jìn)制那些事

接下來(lái),讓我們一起看一下如果將0.1用單精度浮點(diǎn)數(shù)來(lái)表示,累加100次的結(jié)果是否是10,可以結(jié)果又一次出乎意料,結(jié)果是10.000002。

public class TestBinary {
    public static void main(String[] args) {
        float sum=0.0f;
        float step = 0.1f;
        for (int i = 0; i < 100; i++) {
            sum += step;

        }
        System.out.println(sum);

    }
}

如何避免計(jì)算機(jī)計(jì)算出錯(cuò)

我們知道,無(wú)論是用紙面二進(jìn)制還是浮點(diǎn)數(shù)表示小數(shù),都存在計(jì)算出錯(cuò)的可能性,那么我們?cè)撊绾伪苊膺@種問(wèn)題呢?

首先是回避策略,即無(wú)視這些問(wèn)題。有時(shí)候一些微小的偏差并不會(huì)造成什么問(wèn)題。其次,把小數(shù)轉(zhuǎn)換成整數(shù)來(lái)計(jì)算。還是以0.1累加100次為例,將0.1擴(kuò)大10倍后累加100次,最后把結(jié)果除以10就可以了。

public class TestBinary {
    public static void main(String[] args) {
        int sum=0;
        int step = 1;
        for (int i = 0; i < 100; i++) {
            sum += step;

        }
        System.out.println(sum/10);

    }
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站欄目:二進(jìn)制那些事-創(chuàng)新互聯(lián)
本文鏈接:http://weahome.cn/article/dddpdj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部