例93:学习C语言使用按位取反~。 

 

解题思路:正数取反是先将初始数值转换成二进制数(6==》00000110),再对二进制数的每一位取反:即将0变为1、将1变为0。(00000110==》11111001),得到的是最终结果的补码,要转换为最终结果的原码则需再次取补码,就能得到计算结果;负数取反是先将初始数值转换成二进制数(以-6为例,10000110),再取得二进制数的补码,之后对补码的每一位取反:即将0变为1、将1变为0。得到的是最终结果的补码,要转换为最终结果的原码则需再次取补码,就能得到计算结果。

 

C语言源代码演示:

 

学习使用按位取反~。

#include<stdio.h>//头文件
int main()//主函数
{
  int num1,num2;//定义整型变量
  num1=234;
  num2=~num1;
  printf("num2是:%d\n",num2);
  num1=~num1;
  printf("num1是:%x\n",num1);//注意此处的格式控制符是%x
  return 0;//函数返回值为0
}

 

编译运行结果:

 

num2是:-235
num1是:ffffff15

--------------------------------
Process exited after 2.502 seconds with return value 0
请按任意键继续. . .