バイナリプリミティブ符号化逆符号化

1647 ワード

1.バイナリ概念
  • バイナリは0と1からなるマシンコードである01010101
  • バイナリ単位bit
  • 8 bitが1組で、実際には数字1が2進億円に変換
  • バイナリ最上位は符号ビット、0は正数(+)、1は負数(-)-1----->10000001----->00000001
  • 2.原コード
  • 符号は符号ビットに真値を加えた絶対値である.
  • 例:
  • [+1]原=0000 0001
  • [-1]原=1000,0001

  • 3.逆符号化
  • 正数の逆符号はそれ自体である.
  • 負数の逆符号は、その原符号に基づき、符号ビットは変わらず、残りの各ビットは逆をとる.
  • [+1]=[0000 0001]原=[0000 0001]反
  • [-1]=[1000,000]原=[111,110]反

  • 4.補数
  • 正数の符号化はそれ自体である.
  • 負数の補符号は、その原符号に基づき、符号ビットは変わらず、残りは逆をとり、最後に+1とする.(すなわち逆符号に+1)
  • [+1]=[0000 0001]原=[0000 0001]反=[0000 0001]補
  • [-1]=[1000,000]原=[111,1110]反=[111,1111]補

  • 5.原符号、逆符号、補符号(重点難点)
  • バイナリの最上位は符号位:0正1負
  • 正数の原符号、逆符号、補符号ともに同じ(三符号合一)
  • 負数の逆符号=その符号化符号ビットは変わらず、他のビットは逆(0->1,1->0)
  • 負数の符号化=その逆符号+1、負数の符号化=負数の符号化-1
  • 0の逆符号、補符号ともに0
  • javaは符号無し、換言すればjavaの数は全て符号付き
  • 計算機で演算する場合は、いずれも補符号で演算する.
  • 演算結果を見るときは、その原号(ポイント)を見る
  • 6.バイナリ計算手順
  • バイナリ計算方法手順
  • 逆符号先計算
  • 計算符号
  • 演算子計算
  • 計算結果は符号化
  • 計算結果再計算逆符号
  • 計算結果計算の逆符号再計算元符号
  • 本当に計算する結果
  • 7.例
    /*
    2.
        10000000 00000000 00000000 00000010 ==>-2
        10000000 00000000 00000000 00000011 ==>-3
    
        11111111 11111111 11111111 11111101 ==>-2   
        11111111 11111111 11111111 11111100 ==>-3   
    
        11111111 11111111 11111111 11111110 ==>-2   
        11111111 11111111 11111111 11111101 ==>-3   
        11111111 11111111 11111111 11111100 ==> &   
        11111111 11111111 11111111 11111011 ==> &       (     -1)
        10000000 00000000 00000000 00000100 ==> &       
    
    */