1.在使用循环时,如果定义循环变量为无符号数,判断条件为>=0时,此时会出现死循环。
原因:0 - 1 = 0 + (-1); -1的补码为ff,如果是8位的话,所以0+ff为255,又会开始循环。
2.有符号数右移时要补加1。如果 -3/2 = -3>>1 + 1。
1.在使用循环时,如果定义循环变量为无符号数,判断条件为>=0时,此时会出现死循环。
原因:0 - 1 = 0 + (-1); -1的补码为ff,如果是8位的话,所以0+ff为255,又会开始循环。
2.有符号数右移时要补加1。如果 -3/2 = -3>>1 + 1。