无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

十六進(jìn)制如何代表負(fù)數(shù)(補(bǔ)碼舉例,計(jì)算,分析)

2021-06-23 08:40 作者:GXTon_阿通  | 我要投稿

計(jì)算機(jī)中表示負(fù)數(shù)是用補(bǔ)碼.

其實(shí)計(jì)算機(jī)內(nèi)部的數(shù)據(jù),都是補(bǔ)碼形式存儲的.(遵循補(bǔ)碼形式的二進(jìn)制存儲)

比如下面一段文字,是我從一個電機(jī)的協(xié)議中摘出來的.(這里都是十六進(jìn)制表示方法:::)

1.下傳幀: 0xd8 0x30 0x10 0x00 0xff? //?代表控制電機(jī)轉(zhuǎn)速為0x1000=4096轉(zhuǎn)每分鐘.

2.下傳幀: 0xd8 0x30 0xf0 0x00 0xff? //? 代表控制電機(jī)轉(zhuǎn)速位0xf000=- 4096轉(zhuǎn)每分鐘.

從上面兩條指令中,0xd8 0x30可以認(rèn)為是包頭,不用管.

0xff是包尾,也不用管.

中間標(biāo)紅的是數(shù)據(jù)位.

可見,這個電機(jī)控制的數(shù)據(jù)只有兩個字節(jié).

關(guān)于第一條下傳幀,它的數(shù)據(jù)位是,0x10 0x00,合起來就是0x1000,然后我們打開window自帶的計(jì)算器:在HEX欄,也就是16進(jìn)制欄,輸入1000,

然后可以從對應(yīng)的DEC欄得到4096,DEC也就是10進(jìn)制的意思.

上面是正數(shù)的驗(yàn)證,得到0x1000就是4096.

這樣的方法是否適用于負(fù)數(shù)呢??看下圖,顯然是不行的.

因?yàn)檩敵龅氖M(jìn)制(DEC)是61440.

那么應(yīng)該如何去驗(yàn)證呢?

電機(jī)使用手冊上說0xf000= - 4096 ,手冊上說的例子,一般是不會錯的.

進(jìn)行負(fù)數(shù)的驗(yàn)證:

下面就會用到一定的計(jì)算機(jī)基礎(chǔ)了,這里的0xf000補(bǔ)碼的形式.

人是不能直觀看清補(bǔ)碼的,需要轉(zhuǎn)換成原碼.

補(bǔ)碼如何轉(zhuǎn)換成原碼:

負(fù)數(shù)原碼和補(bǔ)碼的相互轉(zhuǎn)換:符號位不變,數(shù)值位按位取反,末位再加1。

我們用windows系統(tǒng)自帶的計(jì)算器,就可以進(jìn)行上面法則的運(yùn)算.

第一步:把計(jì)算器,調(diào)整到二進(jìn)制界面.

第二步:符號位不變,其他的按位取反.

(用鼠標(biāo)去右擊某一個二進(jìn)制位,就可以進(jìn)行取反,0變1,1變0)

第三步:末尾再加一.

通過上面的一步后,看到的結(jié)果是:36864.

難道0xf000=36864嗎?顯然不是.

之所以出現(xiàn)36864,是因?yàn)閣indows系統(tǒng)自帶的計(jì)算器不夠智能,

它不知道最高位的1代表負(fù)號,而是按照正整數(shù)進(jìn)行的計(jì)算.

所以,你需要自己去處理一下.

1001 0000 0000 0000 ,去掉最高位的符號位. (用鼠標(biāo)右擊最高位的1,使1變成0)

然后,就可以看到得到的是4096,

然后因?yàn)橛蟹?就是-4096.

即0xf000= -4096.

總結(jié):

計(jì)算機(jī)中的負(fù)數(shù),都是補(bǔ)碼形式的.

十六進(jìn)制如何代表負(fù)數(shù)(補(bǔ)碼舉例,計(jì)算,分析)的評論 (共 條)

分享到微博請遵守國家法律
彭州市| 汤原县| 厦门市| 泰顺县| 祁阳县| 太原市| 朝阳市| 兴安县| 宣威市| 淳化县| 姚安县| 黑水县| 临武县| 河西区| 云林县| 和平县| 镇平县| 保山市| 南安市| 随州市| 泸州市| 岑巩县| 石棉县| 内江市| 辰溪县| 宾阳县| 巴东县| 安远县| 亳州市| 崇明县| 平陆县| 九龙城区| 吴忠市| 宝兴县| 柳河县| 土默特右旗| 容城县| SHOW| 当雄县| 岑巩县| 三江|