- C言語なら俺に聞け(入門編)Part 126
645 :デフォルトの名無しさん[sage]:2014/10/20(月) 00:46:53.38 ID:jAOGV0n9 - 計算機で話題になる2の補数は、計算機内部で負数をどう表すのかと関係がある。
考えているビット幅でビット反転して1を足して2の補数を作る。 4ビット符号付整数 0101(5) +)1011(-5:ビット反転して+1) ---------------------------- 10000 4ビットから桁あふれした1を「計算機の方で無視」すれば、 a + x = 0 となるので x は -a とみなせる。 たまに話題になる符号拡張も、下で納得 8ビットに拡張すると 0000 0101(5) 正なら0で拡張される +)1111 1011(-5) 負なら1で拡張される --------------- 10000 0000 5 + (-5) = 0 の関係を満たしている。 上にもあるが、計算機の方で1の補数で負数を表すものもある(った)。 今はおそらく大半の計算機が整数の負数に2の補数を使っている。
|