@CrazyHenry
2018-01-23T13:14:16.000000Z
字数 475
阅读 1317
ccccC++Primer
- Author:李英民 | Henry
- E-mail: li
_
yingmin@
outlookdot
com- Home: https://liyingmin.wixsite.com/henry
快速了解我: About Me
转载请保留上述引用内容,谢谢配合!
有符号数会转换为无符号数,表达式的返回值也一定是无符号数,所以就算是计算结果为负,也会将此结果转换为无符号的结果(取模)。归根结底,是不同类型的对象对数据的读取方式不同,按某种方式读取内存的比特。
无符号 - 有符号的时候,有符号数先转换为无符号数,然后再按照无符号数的规则计算减法,返回无符号数,最后结果也按无符号数的读取方式输出。比如:30-(-20),假如是模80,那么-20先转换为60,30-60=-30,-30按无符号读出,就是50了。与实际上算30-(-20)结果一样。
实际上,无论加法还是减法,最终结果为正即为正确结果,为负则需要取模。
可见,有符号和无符号混用并不好: