tft每日頭條

 > 生活

 > 深入理解原碼反碼補碼

深入理解原碼反碼補碼

生活 更新时间:2025-01-24 05:32:09

1、計算機在任何情況下都隻能識别二進制

2、計算機在底層存儲數據的時候,一律存儲的是“二進制的補碼形式”,計算機采用補碼形式存儲數據的原因是:補碼形式效率最高。

3、記住:對于一個正數來說:二進制原碼、反碼、補碼是同一個,完全相同。

int i = 1;

對應的二進制源碼:00000000 00000000 00000000 00000001

對應的二進制反碼:00000000 00000000 00000000 00000001

對應的二進制補碼:00000000 00000000 00000000 00000001

對于一個負數來說:二進制原碼、反碼、補碼是什麼關系呢

byte i = -1

對應的二進制源碼:10000001

對應的二進制反碼(符号位不變,其它位取反):11111110

對應的二進制補碼(反碼 1):11111111

下面我們通過題目來練習一下,請輸出以下代碼打印結果:

byte b = (byte)150; System.out.println(b);

我們先通過運行程序看下結果

深入理解原碼反碼補碼(源碼反碼補碼其實真的很簡單)1

最終結果為-106

我們慢慢來分析下原因:

1、整數150已經超過了byte類型的取值範圍,所以強轉的時候會出現精度損失的情況;

2、150的二進制:00000000 00000000 00000000 10010110

3、int是4個字節,byte是1個字節,所以需要截取掉前3個字節:10010110

4、正數的源碼,反碼,補碼都一樣;現在的10010110是一個負數,所以我們要經過一輪的轉換才可以得到它的源碼

補碼:10010110

号碼:10010101

源碼:11101010

11101010 = 64 32 8 2 = 106

二進制的最左邊的一位代表正負數,1:負數,0:正數

所以為-106

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved