取反,是Java使用補碼來表示二進制數(shù),在補碼表示中,最高位為符號位,正數(shù)的符號位為0,負數(shù)為1。
1、正數(shù)取反,先將初始數(shù)值轉(zhuǎn)換成二進制數(shù),再對二進制數(shù)的每一位進行運算:將0變?yōu)?、將1變?yōu)?。得到的是最終結(jié)果的補碼,要轉(zhuǎn)換為最終結(jié)果的原碼則需再次取補碼,就能得到計算結(jié)果。
2、負數(shù)取反,先將初始數(shù)值轉(zhuǎn)換成二進制數(shù),再取得二進制數(shù)的補碼,之后對補碼的每一位進行運算:將0變?yōu)?、將1變?yōu)?。得到的是最終結(jié)果的補碼,要轉(zhuǎn)換為最終結(jié)果的原碼則需再次取補碼,就能得到計算結(jié)果。