濮阳杆衣贸易有限公司

主頁 > 知識庫 > 十進(jìn)制負(fù)數(shù)轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制的知識分享

十進(jìn)制負(fù)數(shù)轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制的知識分享

熱門標(biāo)簽:嘟聲的電銷機(jī)器人 忻州外呼系統(tǒng)接口對接 湖北穩(wěn)定外呼系統(tǒng) 電銷機(jī)器人怎么收費 洛陽便宜外呼系統(tǒng)廠家 語音平臺系統(tǒng) 醫(yī)院地圖標(biāo)注 地圖標(biāo)注和圖片標(biāo)注 滄州智能外呼系統(tǒng)收費

程序猿們或許對二進(jìn)制都不陌生,二進(jìn)制是計算技術(shù)中廣泛采用的一種數(shù)制。二進(jìn)制數(shù)據(jù)是用0和1兩個數(shù)碼來表示的數(shù)。但是很多人都會將二進(jìn)制轉(zhuǎn)換成整數(shù),但是如何用二進(jìn)制表示負(fù)數(shù)呢?有的人會說,在二進(jìn)制前面加個負(fù)數(shù)符合。而計算機(jī)只能認(rèn)識0 和 1,又怎么去加個額外的負(fù)數(shù)符號呢?于是我們就需要用0和1來表示負(fù)數(shù)。如果想要弄懂這個,我們需要先了解什么是二進(jìn)制原碼。

原碼是什么

原碼(true form)是一種計算機(jī)中對數(shù)字的二進(jìn)制定點表示方法。原碼表示法在數(shù)值前面增加了一位符號位(即最高位為符號位):正數(shù)該位為0,負(fù)數(shù)該位為1(0有兩種表示:+0和-0),其余位表示數(shù)值的大小。

簡單直觀;例如,我們用8位二進(jìn)制表示一個數(shù),+11的原碼為00001011,-11的原碼就是10001011

原碼不能直接參加運算,可能會出錯。例如數(shù)學(xué)上,1+(-1)=0,而在二進(jìn)制中00000001 + 10000001 = 10000010,換算成十進(jìn)制為-2。顯然出錯了。


二進(jìn)制原碼、補碼和反碼

十進(jìn)制如何轉(zhuǎn)換成二進(jìn)制

我們?nèi)绾伟咽M(jìn)制的-3,轉(zhuǎn)換成二進(jìn)制表示呢?首先我們將 -3 的絕對值 +3 轉(zhuǎn)換成二進(jìn)制,假設(shè)是為int類型(32位)的,那么二進(jìn)制表示為:

0000 0000 0000 0000 0000 0000 0000 0011

負(fù)數(shù)轉(zhuǎn)換成二進(jìn)制分為3步:

1、 首先將負(fù)數(shù)轉(zhuǎn)換為對應(yīng)的原碼

-3 的原碼為(也就是+3轉(zhuǎn)換成二進(jìn)制后的字符串):

0000 0000 0000 0000 0000 0000 0000 0011

2、 再將原碼的每一位做取反操作得到反碼。

取反操作:0變?yōu)? 、 1變?yōu)?;取反后的結(jié)果即為:

1111 1111 1111 1111 1111 1111 1111 1100

3、 將反碼+1得到補碼

1111 1111 1111 1111 1111 1111 1111 1101

現(xiàn)在用Windows自帶的計算器來驗證一下,Win+R 輸入calc,將計算器改為程序員,選擇雙字(4字節(jié),32位)


打開Windows自帶的計算器科學(xué)計算功能

在計算器中選擇十進(jìn)制,之后輸入 -3 :


Windows自帶的計算器科學(xué)計算十進(jìn)制下輸入-3

再點擊二進(jìn)制轉(zhuǎn)換,將十進(jìn)制下的-3轉(zhuǎn)換成二進(jìn)制:


轉(zhuǎn)換十進(jìn)制-3為二進(jìn)制

二進(jìn)制轉(zhuǎn)十進(jìn)制負(fù)數(shù)問題

正常情況下,轉(zhuǎn)換二進(jìn)制到十進(jìn)制都是沒有任何問題的。而在類似 Javascript / PHP 等整數(shù)類型中,一般 int /integer 都有位數(shù)限制,一般都是32位長度。也就預(yù)示著,這些語言中,整數(shù)是有最大值的,而32位最大整數(shù)極限為:2147483647,也就是二進(jìn)制:

01111111111111111111111111111111

那么就很容易理解,32位二進(jìn)制,第一位數(shù)為0的時候,就表示這個是一個正數(shù),而如果是1,那么就表示這個是負(fù)數(shù)。

32位二進(jìn)制 11111111111111111111111111111001 十進(jìn)制值是什么?

11111111111111111111111111111001

如上,二進(jìn)制長度為32位,也就是這個整數(shù)是一個負(fù)數(shù),先取反,得到反碼:

00000000000000000000000000000110

反碼+1,得到:

00000000000000000000000000000111

轉(zhuǎn)換成十進(jìn)制:7

由于是負(fù)數(shù),所以加個負(fù)號,轉(zhuǎn)換成 -7

趣味:32位二進(jìn)制 1111111111111111111111111111001 十進(jìn)制值是什么?

這個是個比較有趣的,千萬不要誤導(dǎo)為上面這是一個負(fù)數(shù),其實這個是個整數(shù),因為這里只有31位,需要在前面加0,補足32位,變成:

01111111111111111111111111111001
十進(jìn)制負(fù)數(shù)轉(zhuǎn)八進(jìn)制、十六進(jìn)制

負(fù)數(shù)轉(zhuǎn)換成八進(jìn)制、十六進(jìn)制,只需在補碼(二進(jìn)制)的基礎(chǔ)上,3位合成一位計算,或者4位合成一位計算

-3的轉(zhuǎn)換成二進(jìn)制為:

1111 1111 1111 1111 1111 1111 1111 1101

八進(jìn)制則將-3的二進(jìn)制從右至左每3位為一個單元,不夠三位用0補 即:

011 111 111 111 111 111 111 111 111 111 101

計算每一個單元,結(jié)果為:37777777775

十六進(jìn)制則將-3的二進(jìn)制從右至左每4位合并為一個單元,即:

1111 1111 1111 1111 1111 1111 1111 1101

計算后為: FFFFFFFD


轉(zhuǎn)換十進(jìn)制-3為八進(jìn)制和十六進(jìn)制

您可能感興趣的文章:
  • 科學(xué)知識:二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制轉(zhuǎn)換
  • Python中不同進(jìn)制互相轉(zhuǎn)換(二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制)
  • PHP函數(shù)篇詳解十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制轉(zhuǎn)換函數(shù)說明
  • 進(jìn)制轉(zhuǎn)換算法原理(二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制)
  • JS中字符問題(二進(jìn)制/十進(jìn)制/十六進(jìn)制及ASCII碼之間的轉(zhuǎn)換)
  • 整理C# 二進(jìn)制,十進(jìn)制,十六進(jìn)制 互轉(zhuǎn)
  • 淺談java二進(jìn)制、十進(jìn)制、十六進(jìn)制、字符串之間的相互轉(zhuǎn)換

標(biāo)簽:96 山南 定州 巴彥淖爾 宜賓 內(nèi)蒙古 防城港 日照

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《十進(jìn)制負(fù)數(shù)轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制的知識分享》,本文關(guān)鍵詞  十進(jìn)制,負(fù)數(shù),轉(zhuǎn)換,為,二進(jìn)制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《十進(jìn)制負(fù)數(shù)轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制的知識分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于十進(jìn)制負(fù)數(shù)轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制的知識分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    伊川县| 灌阳县| 永川市| 宁南县| 九龙城区| 富阳市| 运城市| 桃源县| 辰溪县| 淳安县| 德保县| 安阳县| 金溪县| 万安县| 广河县| 平江县| 墨脱县| 江永县| 南川市| 子洲县| 嘉定区| 大新县| 九寨沟县| 香格里拉县| 年辖:市辖区| 徐州市| 凉山| 望奎县| 通州市| 姜堰市| 佛学| 秦皇岛市| 渭南市| 齐河县| 根河市| 阳泉市| 龙川县| 河北区| 雅江县| 溧阳市| 湖州市|