051_原码反码补码概念
生活随笔
收集整理的這篇文章主要介紹了
051_原码反码补码概念
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 反碼的范圍
1.1. 反碼表示法規定: 正數的反碼與其原碼相同。負數的反碼是對其原碼逐位取反, 但符號位除外。
1.2. 在規定中, 8位二進制碼能表示的反碼范圍是-127~127。
1.3. -128沒有反碼。
2. 原碼、反碼、補碼的范圍
2.1. 8位二進制數
原碼 ?-127~127
反碼 ?-127~127
補碼 ?-128~127
2.2. n位二進制數
2.3. 補碼比其它碼多一位, 這是為什么呢? 問題出在0上。
[+0]原碼=0000 0000, ??[-0]原碼=1000 0000
[+0]反碼=0000 0000, ??[-0]反碼=1111 1111
[+0]補碼=0000 0000, ??[-0]補碼=0000 0000
你會發現, +0和-0的補碼是一樣的。即0的補碼只有一種表示。
2.4. [-0]補碼是怎么得來的?
負數的補碼就是反碼整體加一。符號位上的進位舍棄符號位。所以, 舍棄了符號位的補碼的第一位是數值位, 不是符號位,符號位舍棄了。
2.5. 所以, 補碼能表示的數的個數中, 比原碼反碼少了一個, 所以補碼可以多表示一個真值為-128的數。
2.6. 機器中只有加法, 減法會變成補碼的加法。
總結
以上是生活随笔為你收集整理的051_原码反码补码概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 050_整形和字节数组转换
- 下一篇: 049_位移操作