日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

二進制真值與機器值詳解

Q4MP_gh_c472c21 ? 來源:二進制小總結(jié) ? 作者:二進制小總結(jié) ? 2021-02-11 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

真值與機器值

真值很好理解,就是十進制的數(shù)字前面再加上正負(fù)號,這是人類可以簡單識別的數(shù)字,比如 0、±16、±1084、±10.34、±100.453 等,而正數(shù)前面的+符號可以省略。機器值從字面理解就是機器(計算機)識別的值,實際上也確實是這個意思。

計算機中通過高低電平表示1或者0,這樣就可以表示一個二進制的數(shù)值。一個1或者0表示的數(shù)值位稱為一個bit,而計算機中存儲和傳輸數(shù)據(jù)的最小單位是一個字節(jié)(byte)也就是8個bit,所以說計算機所有計算本質(zhì)上都是基于二進制。

在計算機中,我們可以使用1個或者多個字節(jié)存儲一個數(shù),但無論是多少個字節(jié),其大小肯定是固定的,同時其所能表示的數(shù)值的范圍也是固定的。比如說對使用1個字節(jié)存儲的數(shù)進行計算或者傳輸,那么這個數(shù)所能表示的最小值為00000000最大值為11111111,轉(zhuǎn)換為十進制為0 ~ 255。那么無論對這個數(shù)做了什么計算,無論計算之后的結(jié)果為多少都不能超出這個范圍,同理使用2個字節(jié)存儲的數(shù)范圍為0 ~ 65535。

由于很多時候一個數(shù)據(jù)需要使用2個或者2個以上的字節(jié)表示,那么這種數(shù)據(jù)無論是存儲還是傳輸?shù)臅r候都會有一個順序的問題,也就是大小端對齊(字節(jié)序)問題。在存儲時高位字節(jié)在前為大端對齊,反之為小端對齊。在數(shù)據(jù)傳輸時先傳輸高位字節(jié)為大端字節(jié)序,反之為小端字節(jié)序。目前絕大多數(shù)平臺內(nèi)部都是小端對齊的方式存儲數(shù)據(jù),而大多數(shù)通信協(xié)議卻都是用大端字節(jié)序傳輸數(shù)據(jù),所以這一點值得注意一下。

符號位與數(shù)值位

計算機中使用二進制存儲傳輸和計算數(shù)值,但是不能只有數(shù)值,計算的時候還得有正負(fù)之分。在計算機中使用最高bit位的數(shù)值來表示正負(fù)號,這個bit位稱作符號位。

計算機中符號位的值為0表示這個數(shù)為正數(shù),符號位值為1表示這個樹為負(fù)數(shù)。由于符號位表示符號所以其不表示具體的值,除開符號位剩余的bit位用來表示數(shù)值也就是數(shù)值位。比如1個字節(jié)的整數(shù)00000001,其中最高bit(最左邊)位的0為符號位,表示這個數(shù)為正數(shù),數(shù)值位為1,所以其真值為1。同理2個字節(jié)的整數(shù)00000000_0000001,其真值也是1。

原碼、反碼和補碼

計算機只識別機器碼,其實也就是二進制數(shù),并且使用最高bit位表示符號位。那么兩個真值為8和-8的8位整數(shù),它們在計算機內(nèi)部的機器值是否就分別是00001000和10001000?其實并不是,這只是8和-8的原碼,而機器算計中的機器值是使用補碼存儲和計算的。

計算機中,正數(shù)的原碼、反碼和補碼是一樣的,所以上面那個例子中,真值為8的8位整數(shù)的機器值確實是00001000,但是-8就不是這么回事了。負(fù)數(shù)的首先將原碼數(shù)值位按位取反得到反碼,然后再將反碼數(shù)值位加1之后則得到補碼。我們來看一下-8這個例子,其原碼為10001000,數(shù)值位按位取反之后的反碼為11110111,然后數(shù)值位加1之后的補碼為11111000。所以真值為-8的8位整數(shù)在計算機中的機器值為11111000,我們來看下面這張表:

eff534f0-57dd-11eb-8b86-12bb97331649.png

注:int8為8bit位整數(shù)占用1byte,int16為16bit位整數(shù)占用2byte。

剛說的是原碼轉(zhuǎn)補碼的步驟,其實補碼轉(zhuǎn)原碼的步驟是一樣的。首先正數(shù)的原碼補碼是一樣的不需要轉(zhuǎn)換,我們看負(fù)數(shù)11111000,首先將數(shù)值位按位取反得到10000111,然后再將數(shù)值位加1得到10001000。我們再來看一個8位的整數(shù)10000000,是不是發(fā)現(xiàn)這個數(shù)原碼和補碼是一樣的,那么這個看起來像是“-0”的數(shù)是怎么回事呢?其實可以將這個數(shù)看成是一個特殊值,它的真實含義就是最小值。8位的這種“-0”的真值為-128,16位的這種“-0”真值為-32768。所以只需要記住100...000這種補碼就是最小值就行,我們看下面的這張表:

f035981a-57dd-11eb-8b86-12bb97331649.png

有兩對8bit位的整數(shù)4、8和4、-8,我們分別看一下他們在計算機中是怎么做加法計算的。首先看4和8的補碼分別為00000100和00001000,只需要將每個bit位相加就行,結(jié)果為00001100,其真值為12。我們再來4和-8的計算,它們補碼分別為00000100和11111000,然后將它們按位相加(注意符號位也要做加法)得到11111100,其原碼為10000100,真值為-4。

再來看一下減法計算,比如8bit位的整數(shù)-8減去4,首先可以將4處理一下可以變?yōu)?-8) + (-4),這樣是不是就又變?yōu)榱思臃耍?8和-4的補碼分別為11111000和11111100,將它們按位相加得到補碼11110100(注意這是8位的整數(shù),超出部分發(fā)生了溢出),轉(zhuǎn)換成原碼為10001100,真值為-12。

再來看一下乘法,比如8bit位的整數(shù)-8乘以13,他們的補碼分別為11111000和00001101。其中-8為被乘數(shù),13為乘數(shù),并且乘數(shù)有8個bit位,需要將被乘數(shù)按位與和位計算8次然后將結(jié)果相加,看如下分析:

被乘數(shù)的第0個bit位值為1,將被乘數(shù)乘以1然后左移0位得到:11111000;

被乘數(shù)的第1個bit位值為0,將被乘數(shù)乘以0然后左移1位得到:00000000;

被乘數(shù)的第2個bit位值為1,將被乘數(shù)乘以1然后左移2位得到;11100000;

被乘數(shù)的第3個bit位值為1,將被乘數(shù)乘以1然后左移3位得到;11000000;

被乘數(shù)的第4個bit位值為0,將被乘數(shù)乘以0然后左移4位得到;00000000;

被乘數(shù)的第5個bit位值為0,將被乘數(shù)乘以0然后左移5位得到;00000000;

被乘數(shù)的第6個bit位值為0,將被乘數(shù)乘以0然后左移6位得到;00000000;

被乘數(shù)的第7個bit位值為0,將被乘數(shù)乘以0然后左移7位得到;00000000;

由此可以得計算得到8組補碼(注意上面做位移涉及到的整數(shù)溢出,只能是8個bit位),然后將它們做加法得到10011000(也存在整數(shù)溢出)轉(zhuǎn)換為原碼為11101000,真值為-104。

至于除法則是使用交替加減法的方式,本文只是對計算原理做一下擴展,這里不再繼續(xù)深入做介紹,如果有想了解的可以自行上網(wǎng)查詢。

通過上面的分析可以知道,使用補碼可以將所有計算都轉(zhuǎn)化為加法計算,這樣可以讓計算機底層對于整數(shù)計算變得簡單,反碼屬于歷史遺留,因為其存在±0的問題。

原文標(biāo)題:二進制原碼/反碼/補碼詳解,不懂的請看過來

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 二進制
    +關(guān)注

    關(guān)注

    2

    文章

    809

    瀏覽量

    43250
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7844

    瀏覽量

    93537

原文標(biāo)題:二進制原碼/反碼/補碼詳解,不懂的請看過來

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    SN系列4位二進制全加器:快速進位的高效之選

    SN系列4位二進制全加器:快速進位的高效之選 引言 在電子電路設(shè)計領(lǐng)域,加法器是實現(xiàn)算術(shù)運算的基礎(chǔ)組件,其性能直接影響到整個系統(tǒng)的運算速度和效率。TI的SN系列4位二進制全加器(SN54283
    的頭像 發(fā)表于 04-23 13:05 ?188次閱讀

    4位二進制全加器:SN54/74系列的技術(shù)剖析與應(yīng)用指南

    4位二進制全加器:SN54/74系列的技術(shù)剖析與應(yīng)用指南 在電子設(shè)計領(lǐng)域,加法器是實現(xiàn)數(shù)字運算的基礎(chǔ)組件,而4位二進制全加器在眾多數(shù)字電路設(shè)計中扮演著重要角色。今天,我們就來深入探討德州儀器(TI
    的頭像 發(fā)表于 04-23 13:05 ?198次閱讀

    CD4089B:高性能CMOS二進制速率乘法器的設(shè)計與應(yīng)用

    CD4089B:高性能CMOS二進制速率乘法器的設(shè)計與應(yīng)用 在電子設(shè)計領(lǐng)域,對于能夠?qū)崿F(xiàn)精確脈沖速率控制和多樣化運算功能的器件需求始終存在。CD4089B作為一款高性能的CMOS二進制速率乘法器
    的頭像 發(fā)表于 04-18 14:45 ?148次閱讀

    深入剖析 DM74LS283:4 位快速進位二進制加法器

    深入剖析 DM74LS283:4 位快速進位二進制加法器 在電子設(shè)計領(lǐng)域,加法器是實現(xiàn)數(shù)字運算的基礎(chǔ)元件之一。今天我們要深入探討的是 Fairchild 公司的 DM74LS283 4 位快速進位
    的頭像 發(fā)表于 04-10 16:40 ?373次閱讀

    74HC283 4位二進制全加器:設(shè)計利器深度解析

    74HC283 4位二進制全加器:設(shè)計利器深度解析 作為電子工程師,在數(shù)字電路設(shè)計中,加法器是我們經(jīng)常會用到的基礎(chǔ)元件。今天就來深入探討一下74HC283 4位二進制全加器,它在諸多數(shù)字電路設(shè)計場景
    的頭像 發(fā)表于 04-08 16:15 ?297次閱讀

    MAXIM DS1672 I2C 32位二進制計數(shù)器RTC:特性與設(shè)計詳解

    MAXIM DS1672 I2C 32位二進制計數(shù)器RTC:特性與設(shè)計詳解 在硬件設(shè)計領(lǐng)域,實時時鐘(RTC)是許多系統(tǒng)中不可或缺的組件,它能為設(shè)備提供準(zhǔn)確的時間信息。今天我們要深入探討
    的頭像 發(fā)表于 03-24 15:25 ?228次閱讀

    CDx4HC283和CDx4HCT283:高速CMOS邏輯4位二進制全加器的詳細(xì)解析

    CDx4HC283和CDx4HCT283:高速CMOS邏輯4位二進制全加器的詳細(xì)解析 在電子設(shè)計領(lǐng)域,加法器是數(shù)字電路中最基本的運算單元之一,用于實現(xiàn)二進制數(shù)的加法運算。今天要給大家介紹
    的頭像 發(fā)表于 01-19 14:50 ?544次閱讀

    SN54F283與SN74F283:4位二進制全加器的技術(shù)剖析

    SN54F283與SN74F283:4位二進制全加器的技術(shù)剖析 在數(shù)字電路設(shè)計中,加法器是最基礎(chǔ)且關(guān)鍵的組件之一。今天我們要深入探討的是德州儀器(TI)的SN54F283和SN74F283這兩款4位
    的頭像 發(fā)表于 12-29 16:20 ?1246次閱讀

    高速CMOS邏輯4位二進制全加器CDx4HC283和CDx4HCT283技術(shù)詳解

    高速CMOS邏輯4位二進制全加器CDx4HC283和CDx4HCT283技術(shù)詳解 在電子設(shè)計領(lǐng)域,加法器是實現(xiàn)數(shù)字運算的基礎(chǔ)元件之一。今天我們要深入探討的是TI公司的CD54HC283
    的頭像 發(fā)表于 12-28 16:05 ?980次閱讀

    德州儀器4位二進制全加器:SN54/74283系列深度解析

    德州儀器4位二進制全加器:SN54/74283系列深度解析 在數(shù)字電路設(shè)計領(lǐng)域,加法器是構(gòu)建復(fù)雜算術(shù)邏輯單元的基礎(chǔ)組件。德州儀器(TI)的SN54/74283系列4位二進制全加器憑借其快速進位
    的頭像 發(fā)表于 12-23 15:45 ?1167次閱讀

    二進制查找(Binary Search)介紹

    二進制查找(Binary Search)用于在已排序的數(shù)組中執(zhí)行二進制查找的函數(shù)。 int binary_search(int arr[], int size, int target
    發(fā)表于 12-12 06:54

    如何在vivado上基于二進制碼對指令運行狀態(tài)進行判斷

    在擴展指令時我們常常需要一些手段來幫助我們判斷指令是否能夠成功運行、運行狀態(tài)是否正確。一方面,我們可以通過模擬器來實現(xiàn),另一方面,在沒有模擬器的情況下,我們可以通過將所擴展指令的二進制代碼導(dǎo)入
    發(fā)表于 10-24 06:46

    在vivado上基于二進制碼對指令運行狀態(tài)進行判斷

    在擴展指令時我們常常需要一些手段來幫助我們判斷指令是否能夠成功運行、運行狀態(tài)是否正確。一方面,我們可以通過模擬器來實現(xiàn),另一方面,在沒有模擬器的情況下,我們可以通過將所擴展指令的二進制代碼導(dǎo)入
    發(fā)表于 10-24 06:31

    如何將圖像文件轉(zhuǎn)換為二進制文件?

    如何將圖像文件轉(zhuǎn)換為二進制文件
    發(fā)表于 09-05 08:28

    二進制數(shù)據(jù)處理方法分享

    時,我們?nèi)绾稳ソ馕鰯?shù)據(jù)并且應(yīng)用它們。本次的技術(shù)分享文章,我們就從如何傳輸數(shù)據(jù)和解析二進制數(shù)據(jù)來一步一步剝絲抽繭,搞清楚他的運作原理和二進制數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
    的頭像 發(fā)表于 07-30 15:41 ?2648次閱讀
    <b class='flag-5'>二進制</b>數(shù)據(jù)處理方法分享
    木兰县| 东丰县| 天台县| 南投县| 大理市| 桑植县| 如皋市| 牟定县| 澄江县| 凯里市| 芦溪县| 松阳县| 泾川县| 亚东县| 咸丰县| 永昌县| 汶上县| 日喀则市| 昭苏县| 榆社县| 宁波市| 镇沅| 金川县| 丹江口市| 舒城县| 新兴县| 焦作市| 太原市| 武山县| 府谷县| 彰化县| 肥乡县| 锡林浩特市| 博客| 海口市| 屏东县| 永善县| 商城县| 辛集市| 沙湾县| 宜宾县|