int里第一位是符号位,0代表正数,代表负数。并且正数用原码储存,负数用补码储存(这样做是能将二进制加法与减法统一,自己悟一下,很高明的方法)。11110010 第一位是1 所以是负数,所以是补码。补码转原码要取反加一(除了符号位),所以取反10001101。再加一10001110 就是-14了。手机打字,希望你能理解。具体的搜索关键字补码来学习就行。望采纳
x = 11 -> 0000 1011
~x -> 1111 0100
负数以补码方式存储的,要换算成十进制,先把1111 0100取反(除开符号位),再加1,这时为1000 1100 (1000 1011 + 1),为-12。
大概是这样,你再具体查下补码
第一,输出的是-12
第二,~是二进制取反,不是取补码