首页 > 编程知识 正文

c语言和c++哪个更难,c语言按位取反运算符怎么用

时间:2023-05-06 05:15:14 阅读:39319 作者:4637

第一个同学写的很好,但一开始不太清楚为什么这样计算。 以下是学习笔记。

首先,需要理解有符号整数。 有符号整数的最高有效位表示符号位,0是正数,1是负数。 例如,为了清楚起见,使用8位二进制数。

//十进制=源代码

3=00000011

-3=10000011

然后是反码。 正整数的反符号本身(原符号),负整数的反符号本身的符号位不变,把剩下的各位反过来。

//十进制=原码=反码

3=00000011=00000011

-3=10000011=11111100

最后是补数。 正整数补码是其原始代码。 因此,正整数的原始代码、相反的代码和补码都相同。 负整数的补数是负号加1。

//十进制=原码=反码=补数

3=00000011=00000011=00000011

-3=10000011=11111100=11111101

这些概念我们理解后,反过来就很明白了; 取反是根据补数进行的,要取反运算(n ),必须将整数转换为补数,然后取反,最后转换为原码。 应该注意的是,如果正整数补数反向,则符号位为1,因此该反向数为负整数。 需要像根据负整数计算补数那样进行逆运算得到原符号。 示例:

3=0000011=1111100=1111011=10000100=-4

//1.10进制数转换为补数(00000011 )需要注意正整数的反符号和补数本身

//2 .反转补码(11111100 ) )。

//3 .将已经取反的补码转换为反码(11111011 ),补码转换为反码的公式:反码=补码- 1

//4 .最后将反码的逆运算转换为原始代码(10000100 )。 逆运算的过程是反码的符号位不变,剩下的大家取逆

//5 .此时,结果为-4

反转负整数:

-3=10000011=1111100=1111101=0000010=2

//1.10进制转换为原码(10000011 )

//2 .将原码转换为反码(11111100 )

//3 .反码转换为补数(11111101 )。 公式为补数=反码1

//4 .反码(00000010 )。 此时,反过来的二进制符号位为0,表示它是正整数。 上面正整数的反码和补码本身,所以最终变成2

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。