python数据类型导致的问题

计算过程中,uint8数据类型导致的算数溢出,注意计算过程中尽量保持数据类型为float型,避免算数溢出。
问题描述:
Cb和cr的数据类型为uint8(数值范围[0,255]),因此在计算过程中改变128的数据类型出现out_3和out_4结果相同,但是out_5和out_6结果截然不同。
下面是两组实验:

  1. 128的int型和float型对计算结果的影响,表达式out_3、out_4与out_5、out_6形式一致,但是out_3、out_4的结果相同,而out_5、out_6结果相差较大。
    在这里插入图片描述
    在这里插入图片描述
  2. 分析out_5和out_6的结果,发现out_5的结果恰好为+128的结果,因此考虑为数据类型导致的算数溢出问题,十进制负数的二进制等于十进制负数相反数的补码(反码加1)。
    cr的数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 查看out_5和out_6的数据类型,进一步确定了是数据类型导致的问题。
    在这里插入图片描述
    问题的解决:
    在运算的过程中,尽量保证数据不是uint8类型,而使用有符浮点型数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值