最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

十進制負數轉換為二進制、八進制、十六進制的知識分享

 更新時間:2014年02月04日 16:50:38   作者:  
這篇文章主要介紹了十進制負數轉換為二進制、八進制、十六進制的知識分享,需要的朋友可以參考下

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

原碼是什么

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

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

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

二進制原碼、補碼和反碼
二進制原碼、補碼和反碼

十進制如何轉換成二進制

我們如何把十進制的-3,轉換成二進制表示呢?首先我們將 -3 的絕對值 +3 轉換成二進制,假設是為int類型(32位)的,那么二進制表示為:

0000 0000 0000 0000 0000 0000 0000 0011

負數轉換成二進制分為3步:

1、 首先將負數轉換為對應的原碼

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

0000 0000 0000 0000 0000 0000 0000 0011

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

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

1111 1111 1111 1111 1111 1111 1111 1100

3、 將反碼+1得到補碼

1111 1111 1111 1111 1111 1111 1111 1101

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

打開Windows自帶的計算器科學計算功能
打開Windows自帶的計算器科學計算功能

在計算器中選擇十進制,之后輸入 -3 :

Windows自帶的計算器科學計算十進制下輸入-3
Windows自帶的計算器科學計算十進制下輸入-3

再點擊二進制轉換,將十進制下的-3轉換成二進制:

轉換十進制-3為二進制
轉換十進制-3為二進制

二進制轉十進制負數問題

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

01111111111111111111111111111111

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

32位二進制 11111111111111111111111111111001 十進制值是什么?

11111111111111111111111111111001

如上,二進制長度為32位,也就是這個整數是一個負數,先取反,得到反碼:

00000000000000000000000000000110

反碼+1,得到:

00000000000000000000000000000111

轉換成十進制:7

由于是負數,所以加個負號,轉換成 -7

趣味:32位二進制 1111111111111111111111111111001 十進制值是什么?

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

01111111111111111111111111111001
十進制負數轉八進制、十六進制

負數轉換成八進制、十六進制,只需在補碼(二進制)的基礎上,3位合成一位計算,或者4位合成一位計算

-3的轉換成二進制為:

1111 1111 1111 1111 1111 1111 1111 1101

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

011 111 111 111 111 111 111 111 111 111 101

計算每一個單元,結果為:37777777775

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

1111 1111 1111 1111 1111 1111 1111 1101

計算后為: FFFFFFFD

轉換十進制-3為八進制和十六進制
轉換十進制-3為八進制和十六進制

相關文章

  • 關于頁面刷新,事件重復提交的方法分享

    關于頁面刷新,事件重復提交的方法分享

    在處理頁面事件時,我們會經常會碰到這樣的情況:當我們在提交一項頁面表單時,在提交成功后,當我們試圖按F5刷新頁面時,數據會再次的被重復提交
    2012-10-10
  • Git常用場景使用方法

    Git常用場景使用方法

    這篇文章主要介紹了Git常用場景使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 教你如何在WordPress發(fā)布文章時自定義文章作者名稱

    教你如何在WordPress發(fā)布文章時自定義文章作者名稱

    這篇文章主要介紹了如何在WordPress發(fā)布文章時自定義文章作者名稱
    2021-09-09
  • zend stdio8.0 快捷鍵匯總集合

    zend stdio8.0 快捷鍵匯總集合

    接下來小編就為大家介紹一下在Zend Stdio 8.0版本中的快捷鍵匯總。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • 詳解git的分支與合并的兩種方法

    詳解git的分支與合并的兩種方法

    這篇文章主要介紹了詳解git的分支與合并的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 各類常見語言清除網頁緩存方法匯總

    各類常見語言清除網頁緩存方法匯總

    這篇文章主要介紹了各類常見語言清除網頁緩存方法匯總,包括了常見的html、asp、php與java,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • git版本回退方式(git?reset、git?revert、git?stash)

    git版本回退方式(git?reset、git?revert、git?stash)

    這篇文章主要介紹了git版本回退方式(git?reset、git?revert、git?stash),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 在MAUI中使用Masa?Blazor的方法

    在MAUI中使用Masa?Blazor的方法

    這篇文章主要介紹了在MAUI中使用Masa?Blazor,探索一下如何在MAUI中使用Masa?Blazor,開頭介紹了什么是MAUI,需要的朋友可以參考下
    2022-04-04
  • 接口數據安全保證的10種方式

    接口數據安全保證的10種方式

    這篇文章主要為大家介紹了接口數據安全保證的10種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vscode使用markdown無法預覽網絡圖片的解決方法

    vscode使用markdown無法預覽網絡圖片的解決方法

    本文主要介紹了vscode使用markdown無法預覽網絡圖片的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01

最新評論

弥渡县| 平谷区| 阿勒泰市| 芜湖县| 西华县| 乌恰县| 临城县| 呼伦贝尔市| 剑河县| 湘潭市| 西乌珠穆沁旗| 江华| 剑河县| 安岳县| 嘉荫县| 宁明县| 浦县| 彰武县| 水城县| 马边| 青田县| 留坝县| 龙海市| 奉节县| 邢台县| 兰考县| 临夏市| 迁西县| 吕梁市| 安达市| 定远县| 桑植县| 蓬溪县| 余干县| 兖州市| 民县| 桃江县| 临安市| 博客| 筠连县| 金秀|