日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机基础知识:原码、反码、补码

發布時間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机基础知识:原码、反码、补码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可能很多人有這樣的疑問,我們為什么要了解原碼、反碼、補碼,它能幫助我們解決什么問題?在編寫代碼中有什么實際用途呢?

我是這樣認為的,其一,作為計算機基礎知識,我們必須有所了解。其二、這些基礎知識無論是普通的編寫代碼,還是研究高超的算法都離不開它。

例:我們常見的位運算 ?按位與(&)、按位或(|)、取反(~)等等。

? ? ? ?在代碼中, 我們可能經常會碰到這樣的需求,要計算一個數是偶數或奇數,一般我們這樣寫 ?n % 2 取余,如果余0則為偶,否則為奇。

? ? ? ?我們可以利用按位與(&)很巧妙的解決這問題,而且效率會更高,因為位運算是對內存數據進行操作,不需要轉換成十進制,因此它的處理速度更快。

? ? ? ?我們來判斷整數n是奇是偶,可以運用表達示 n & 1,如 n = 5, n & 1返回值1; ? 如n=6,n&1返回值0;因為,在二進制里面,末位為0表示偶數,為1表示奇數,效果與n % 2 取余是一樣的,但比它要快。

當然,除了這個,還有非常多的用途。

好啦,我們進入正題!

------------------------------------------------------------------------------------------------------------------------------------------------

我們知道,計算機中所有數據最終都是以二進制數表示。

相信大家也學過如何將一個十進制數轉換為二進制數,如果覺得換算比較麻煩,可以用系統自帶的計算器輔助換算。

我們也學過字節與位,1字節=8位,通常在Asp.net、Java等高級編程語言中int類型默認以32位(4字節)表示,當然你可以顯示申明以16位或64位表示。現假設有int類型數,值為9,在計算機中以二進制方式表示如下:

--8位--

0000 1001

--16位--

0000 0000 0000 1001

--32位--

0000 0000 0000 0000 0000 0000 0000 1001

--64位--

0000?0000 0000 0000?0000 0000 0000 0000 0000?0000 0000 0000?0000 0000 0000 1001

通過以上可以看出,數值9轉換成二進制是0000 1001,在16位、32位或64位中它們占位比較多,所以前面補0填充。

OK,這是數值9的二進制表述,那么如果是-9,它在計算中如何表述呢?

在計算機中,負數是以其正值的補碼形式表述的。這就需要我們搞清楚什么是原碼、反碼、補碼,他們之間有什么曖昧的關系啦。

原碼:一個整數,按照絕對值換算成的二進制數,稱為原碼。(數的絕對值:正數和零的絕對值是它本身,負數的絕對值是它的相反數。總之,一個數的絕對值是非負數。)

   如:數值-9的絕對值為9,數值9的二進制是 0000 1001,這就是-9的原碼。

反碼:在原碼基礎上按位取反,產生的新二進制數稱為原二進制數的反碼。簡單理解就是:原為1的變成0,原為0的變成1.

   如:數值-9的原碼是 0000 1001。把它的每一位取反后為 1111 0110

補碼:反碼加1為補碼。(補碼=反碼+1; 反碼=原碼取反; 原碼=數值絕對值的二進數數)

? ? ? ??如:數值-9的原碼是 0000 1001。把它的每一位取反后為 1111 0110,計算補碼=反碼+1,也就是?1111 0110 + 1 = 1111 0111

?

因此,數值-9在計算機中二進制表述為:1111 0111

我們再來一例:-15在計算機中如何表述:

1、原碼,數值-15的絕對值15,它的二進制表述是 0000 1111

2、反碼,原碼基礎上取反為: ?1111 0000

3、補碼,反碼+1得補碼, ?1111 0001

所以-15在計算機里用二進制表述就是 1111 0001

轉載于:https://www.cnblogs.com/event/p/6406293.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的计算机基础知识:原码、反码、补码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。