错题1:(关于补码反码)

Posted zzw3014

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错题1:(关于补码反码)相关的知识,希望对你有一定的参考价值。

:这道题的正确结果是什么?

int i=5;
int j=10;
syso(i+~j);

 

 

首先要明白在计算机中都是以补码形式存储数据的。

正数的原码、反码、补码都是一样的,负数的补码等于反码+1

~符号是单目运算符,代表按位取反,结果的每位值和原始值均相反,即原本为1结果为0,原本为0,结果为1。

例如:8位的数字在计算机中就是存储为:   1111 1111 --> 0000 0000 -->0111 1111 (-128-->0-->127)  所以数字在计算机中的存储都是有带符号位的。

 

解:10:原码为 0000 0000 0000 1010,补码也是这个

  ~10:1111 1111 1111 0101(变为负数)     补码就为:1000 0000 0000 1011  =-11,所以输出结果为-6.

        

以上是关于错题1:(关于补码反码)的主要内容,如果未能解决你的问题,请参考以下文章

关于原码,反码和补码

关于 -128 ,+128,-0,+0,-1,+1 的反码补码

关于原码反码补码以及位元算

关于二进制以及位运算

反码补码报告

Java学习--反码 原码 补码简析