Unreal中使用位运算实现Bool功能

2 篇文章 0 订阅

使用位运算可以大大提升代码运行效率,这里通过Unreal记录一下使用位运算把unit8作为一连串Bool功能使用。新建一个继承自AActor的C++类CustomActor,并声明一个unit8类型的变量BytesBool:

主要思路是通过不同位上的值是否为1来替代true和false,实现两个方法:Get和Set:

  1. 设置第Index位为true:

把Index位上的值改为1,把1左移Index位,得到类似0100的数值,和原来的数值进行或运算,实现把Index位数值和1进行或运算后变为1,其他位和0进行或运算后不变。

  1. 设置第Index为false:

把Index位上的值改为0,,把1左移Index位,得到类似0100的数值,取反后得到1011,和原来的数值进行与运算,实现把Index位数值和0进行与运算后变为0,其他位和1进行与运算后不变。

  1. 获取第Index位是true还是false:

如果相应位置的数值为1,则为true;否则为false。原来的数值右移Index位,得到类似0001的数值,把Index位的数值移动到最末位,然后判断此数值是否为1。

暴露测试函数在蓝图中使用:

测试结果一切正常:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值