在项目代码中为了避免条件分支,需要把bool变成int的形式,然后通过向量运算的形式和单个单个的形式,其结果却是不同,向量的方式为(-1, 0)
,而单个的转换则为(1, 0)
有如下kernel代码:
int2 interxy_i; //输入 int2 tmp2 =(interxy_i & 0x01) == 1; printf("1: interxy_i x%d y%d, tmp2:%d %d \n", interxy_i.x, interxy_i.y, tmp2.x, tmp2.y); int2 tmp3; tmp3.x = (interxy_i.x & 0x01) == 1; tmp3.y = (interxy_i.y & 0x01) == 1; printf("2: interxy_i x%d y%d, tmp3:%d %d \n", interxy_i.x, interxy_i.y, tmp3.x, tmp3.y);
打印结果显示:tmp2打印出来的都是-1或0,而tmp3打印出来的则都是1或者0。
谨记:若要万无一失,确保准确,则应该加上abs函数。
如对本文有疑问, 点击进行留言回复!!
Xamarin 安卓 相机 各种坑 目标API Android 6以后,我选的目标API版本是 Android 10
Android 9.0+软件某些功能突然暴毙:cleartext not permitted
Android : Resource is not a Drawable (color or path)
Flutter问题集锦——Android Studio 4.0.1 在AVD Manger中启动模拟器报“unable to locate abd”
网友评论