今天在做公司大数据分析时遇到个坑,某些数据莫名其妙变得特别大:
最终定位出原因在这个强转这里
当8位有符号数扩展为64位无符号数时,底层汇编实际上使用的是movsx带符号扩展指令,意思就是扩展的那些位都用符位来补全,这里就造成了value的高58位全为1,从而值异常大。
我们再来做个简单测试:
今天在做公司大数据分析时遇到个坑,某些数据莫名其妙变得特别大:
最终定位出原因在这个强转这里
当8位有符号数扩展为64位无符号数时,底层汇编实际上使用的是movsx带符号扩展指令,意思就是扩展的那些位都用符位来补全,这里就造成了value的高58位全为1,从而值异常大。
我们再来做个简单测试: