下面的代码 会产生错误.
vector<int> test; |
无符号类型的数值和有符号类型的数值进行运算(包括算数逻辑运算等)会将有符号类型的数值转换成无符号类型的数值.
但是对于char short等小于int的数值运算的时候 会转换成int 纯正的int
对于unsigned char在转换成int时,无论最高位是0还是1,都补0
signed char的则高位时1补1 0补0
// 0*23 1 |
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
下面的代码 会产生错误.
vector<int> test; |
无符号类型的数值和有符号类型的数值进行运算(包括算数逻辑运算等)会将有符号类型的数值转换成无符号类型的数值.
但是对于char short等小于int的数值运算的时候 会转换成int 纯正的int
对于unsigned char在转换成int时,无论最高位是0还是1,都补0
signed char的则高位时1补1 0补0
// 0*23 1 |