一個函數就能實現將正數變成對應的負數和將負數變成對應的正數

如何用一個函數就能實現將正數變成對應的負數,將負數變成對應的正數:

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;  

正數取反加一後,得到就是負數的補碼,負數是以補碼的形式存在內存中,補碼轉爲原碼是就是正數要轉化後對應的負數

負數取反加一後,得到一個補碼,但正數的補碼原碼一樣

注意:取反和取反碼是不同的兩個概念,運算時都是補碼形式參與運算,因爲有負數參與

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章