首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

gcc 嵌入式汇编(asm)实现bsr(位扫描)指令

bsr_int64_(unsigned __int64 num) { __int8 count=(sizeof(num)<<3)-1; for(unsigned __int64 mask=1LLU...return count; } 基本的思路就是用for循环从最高位开始对每一位做与运算,找到第一个为1的位,就中止循环,count中就是结果,如果所有的位都为0,则count为-1; 注意这里1LLU...<< count, LLU限定前面的数字1为long long(64位),U限定为无符号类型(unsigned),就是指1为unsigned long long 型64位无符号整数。...bsr_int64_(unsigned __int64 num) { __int8 count=(sizeof(num)<<3)-1; for(unsigned __int64 mask=1LLU..._bsr(88080LLU);//调用static __int8 _bsr(unsigned __int64 num) 看完这些内容,如果你想实现bsf(正向位扫描)指令,也可以在这个基础上如法炮制了。

70440
领券