<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 原碼 第一位表示符號, 其余位表示值 ``` 1111 1111 -> -127 0111 1111 ->127 ``` ## 反碼 - 正數的反碼是其本身 - 負數的反碼是在其原碼的基礎上, **符號位不變**,其余各個位取反 ``` 00000001(原碼) -> 00000001(反碼) 10000001(原碼) -> 11111111(反碼) ``` > 可見如果一個反碼表示的是負數, 人腦無法直觀的看出來它的數值. 通常要將其轉換成原碼再計算. ### 反碼的目的 找出原碼和補碼之間的規律,消除轉換過程中的減法 ## 補碼 - 正數的補碼就是其本身 - **負數的補碼**是在其原碼的基礎上, 符號位不變, 其余各位取反, **最后+1**. (即在反碼的基礎上+1) ``` 00000001(原碼) -> 00000001(反碼) -> 00000001(補碼) 10000001(原碼) -> 11111110(反碼) -> 11111111(補碼) ``` ### 引進補碼的目的 減法運算復雜,希望找到使用正數替代負數的方法 使用加法代替減法操作,從而消除減法 > 通過反碼解決 ## 總結 計算一個數的原碼,補碼與反碼 ``` 7 原碼(0,0111) 反碼 (0,0111) 補碼 (0,0111) -7 原碼(0,0111) 反碼 (0,1000) 補碼 (1,1001) ``` 計算 1-1=0 ``` // 使用原碼,結果不正確 1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2 // 使用反碼:0帶符號是沒有任何意義 1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0 // 使用補碼 1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]補 + [1111 1111]補 = [0000 0000]補=[0000 0000]原 // -128并沒有原碼和反碼 // 在用補碼運算的結果中, [1000 0000]補 就是-128 (-1) + (-127) = [1000 0001]原 + [1111 1111]原 = [1111 1111]補 + [1000 0001]補 = [1000 0000]補=-128(原碼) ``` ### 使用補碼 1. 補碼的 `-0` 值就是范圍的最小值 2. 不僅僅修復了0的符號以及存在兩個編碼的問題, 3. 而且還能夠多表示一個最低數. 這就是為什么8位二進制, 使用原碼或反碼表示的范圍為[-127, +127], 而使用補碼表示的范圍為[-128, 127] 因為**機器使用補碼,** 所以對于編程中常用到的32位int類型, 可以表示范圍是: [-231, 231-1] 因為第一位表示的是符號位.而使用補碼表示時又可以多保存一個最小值 ![](https://img.kancloud.cn/d3/17/d317a2dfe0841076525fb5bcd096b718_1578x1076.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看