$item1="50,000.00";
$item2="1,000.00";
echo $total=(number_format($item1+$item2,2));
为什么“combined_value1”的值错了?这里球和傻瓜的值从0到15,我试图将combined_value连接为{ball [4 bits]:傻瓜[4位]:[8个零位]}。
答案 0 :(得分:5)
+
的{{3}}高于<<
,所以
((uint16_t)ball)<<12+((uint16_t)fool)<<8;
评估为
((uint16_t)ball) << (12+((uint16_t)fool)) << 8;
请注意(uint16_t)
投射在此背景下没有多大意义,因为在int
升级之后。相反,请考虑
uint16_t combined_value = (uint16_t)((ball<<12) + (fool<<8));
还有其他一些多余的铸件。正如 @StoryTeller 建议的那样,最好包含stdint.h
。