2の補数(にのほすう)は、2、ないし2のべき乗の補数、またそれによる負の値の表現法である。特に二進法で使われる。(数学的あるいは理論的には、三進法における減基数による補数、すなわち による補数も「2の補数」であるが、まず使われることはない)コンピュータの固定長整数型や、固定小数点数で、負の値を表現するためや加算器で減算をするために使われる。頭の部分の1個以上の0を含む(正規化されていない)ある桁数の二進法で表現された数があるとき、その最上位ビット (MSB) よりひとつ上のビットが1で、残りが全て0であるような値(8ビットの整数であれば、formula_1)から、元の数を引いた数が2の補数である。MSBの重みが1であるような固定小数点表現の場合は特に「2」の補数となる。−36(十進法)が、8ビットで、2の補数でどのように表されるかを例として示す。二進法8ビットで、36は である。したがって、2の補数による−36の表現は ()である。元の数 () と求められた () の2つの数を足し合わせると、すべての桁が 0 になり、負数が求められていることがわかる(最上位桁からの桁上がりの 1 は無視する)。「1の補数に1を加える」という方法もある。算術的に考えると、(たとえばこの例の場合)「256 − 36」という計算を「(255 − 36) + 1」に分解している。まず次に1を加えると、得られた値は、上記の値と同じことが分かる。2の補数をよく見てみると、1が出てくる最下桁までは元の数とビットが同じで、それよりも上の桁はビットが反転していることが分かる。そこで、計算の工程数をより削った方法として、1が出てくる最下桁までをそのままにして、それより上の桁のビットを反転させるという方法が考えられる。二進法における、減基数すなわち 2 − 1 による補数を1の補数と言う。1の補数は、全ての桁が1である値から、元の値を引けば求まるが、各ビットの1を0に、0を1に、と反転させても求められる。2の補数で表現された負の数の値を考えるには、二進法の各桁の重みについて、最上位ビット (MSB) のみ符号が反転したものとして計算すれば良い。たとえば は、符号無しの二進法であれば、formula_2 であるが、2の補数表現による負の数であるとした場合は、formula_3 である。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。