如何用一个函数就能实现将正数变成对应的负数,将负数变成对应的正数:
int turn(int a)
{
a = ~a + 1;
return a;
}
int main()
{
printf("%d\n", turn(5));
printf("%d\n", turn(0));
printf("%d\n", turn(-1));
return 0;
}
正数取反加一后,得到就是负数的补码,负数是以补码的形式存在内存中,补码转为原码是就是正数要转化后对应的负数
负数取反加一后,得到一个补码,但正数的补码原码一样
注意:取反和取反码是不同的两个概念,运算时都是补码形式参与运算,因为有负数参与
本文介绍了一个简单的C语言函数,通过位操作实现数号的翻转,即正数变为负数,负数变为正数。该方法利用了补码系统的特点,通过按位取反加一的操作来完成转换。
1272

被折叠的 条评论
为什么被折叠?



