1. 程式人生 > >unsigned 型別減法注意點

unsigned 型別減法注意點

     新年第一天,執行新年計劃,每日一記,大小皆宜。

     今天碰到一個小問題,不引人注目,卻也會是個大坑,留下警示自己吧。

    程式碼中有兩個unsigned int相減的公式:

     unsigned int a = 1;

     unsigned int b = 2;

     那麼 int c = a - b;等於多少呢?

     一個小細節,都以為是-1,沒問題!!!!

    可是GDB裡面走一下怎麼就是不對,一個很大的數字,為什麼呢?奇怪!!!!

   仔細想想,原理自明!!!

   a, b 都是unsigned int型別,做減法的時候不需型別轉換,但是當值小於0的時候就溢位了,成了一個無效的數字。

  以後注意!!!