C++中ushort类型的运算规则
导读:在C++中,unsigned short(通常简写为ushort)是一种无符号整数类型,其大小通常为16位(2字节) 加法:当两个unsigned short类型的数相加时,如果结果超出了unsigned short的表示范围(即大于US...
在C++中,unsigned short
(通常简写为ushort
)是一种无符号整数类型,其大小通常为16位(2字节)
- 加法:当两个
unsigned short
类型的数相加时,如果结果超出了unsigned short
的表示范围(即大于USHRT_MAX
),则会发生模运算(即结果对USHRT_MAX + 1
取模)。这意味着结果将“环绕”到unsigned short
的有效范围内。
unsigned short a = USHRT_MAX;
// 65535
unsigned short b = 1;
unsigned short c = a + b;
// 0,因为 65535 + 1 = 65536 % (65536) = 0
- 减法:与加法类似,当两个
unsigned short
类型的数相减时,如果结果小于0(即第一个数小于第二个数),则会发生模运算。
unsigned short a = 0;
unsigned short b = 1;
unsigned short c = a - b;
// 65535,因为 0 - 1 = -1 % (65536) = 65535
- 乘法:当两个
unsigned short
类型的数相乘时,如果结果超出了unsigned short
的表示范围,则会发生模运算。
unsigned short a = USHRT_MAX;
// 65535
unsigned short b = 2;
unsigned short c = a * b;
// 131070,因为 65535 * 2 = 131070 % (65536) = 131070
- 除法:当两个
unsigned short
类型的数相除时,如果除数为0,则会发生未定义行为(UB)。否则,结果将被截断为unsigned short
类型。
unsigned short a = USHRT_MAX;
// 65535
unsigned short b = 2;
unsigned short c = a / b;
// 32767,因为 65535 / 2 = 32767
- 取模:当两个
unsigned short
类型的数进行取模运算时,如果除数为0,则会发生未定义行为(UB)。否则,结果将被截断为unsigned short
类型。
unsigned short a = USHRT_MAX;
// 65535
unsigned short b = 2;
unsigned short c = a % b;
// 1,因为 65535 % 2 = 1
需要注意的是,当涉及到unsigned short
和其他整数类型(如int
、long
等)之间的运算时,可能会发生隐式类型转换。在这种情况下,较小的整数类型将被提升为较大的整数类型,然后再进行运算。例如,当unsigned short
与int
相加时,unsigned short
将被提升为int
,然后再进行加法运算。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C++中ushort类型的运算规则
本文地址: https://pptw.com/jishu/696203.html