初めにバグか仕様かで言うと仕様です。 上であまさとさんがおっしゃっているように2の補数というちょっと特殊な表記法を使うことによってプラスかマイナスかを表しています。(※整数型の場合) 2の補数というのはなにかと言うと、 &bx010...(24桁略)...1010 という2進数があったとします。(xは0か1の桁) x=0なら正の整数なのですが、問題はx=1のときです。 簡潔に言うと、x以外の31桁の二進数を10進数の正の整数と見立てて、その数から2^31を引くとそうなります。