为什么带和不带“L”后缀的乘法运算结果不同?
当涉及长值的数字相乘时,添加“L” " 数字文字的后缀对于获得准确的结果至关重要。这是因为数字文字的默认数据类型是 int,它的范围比 long 小,可能会导致整数溢出。
带有“L”后缀的 Long 值
long oneYearWithL = 1000*60*60*24*365L;
不带“L”后缀的长值
long oneYearWithoutL = 1000*60*60*24*365;
二进制表示形式
两个值之间的差异可以从其二进制表示形式中看出:
oneYearWithL : 011101010111101100010010110000000000 oneYearWithoutL: 01111111111111111111111111111111
oneYearWithL 最高位中的“1”表示正值,oneYearWithoutL 最高位中的“0”表示溢出导致负值。
结论
当涉及长值的数字相乘时,显式使用“L”后缀可确保结果准确存储为 64 位长值。忽略添加“L”后缀可能会因整数溢出而导致计算错误。
以上是为什么在乘法运算中添加'L”后缀对于长值很重要?的详细内容。更多信息请关注PHP中文网其他相关文章!