目标:输入一个十进制数,计算出对应的二进制位宽

基本想法:借助右移,每右移一位,计数器加1直至为0

例如:输入number 3,二进制为 11(两位);右移 2次为 0,对应的clogb2 =2,函数返回 clogb2

代码:

function integer clogb2(input integer number)
begin
   for(clogb2 = 0; number >0 ; clogb2 = clogb2 + 1 )
      number = number >> 1;
   end
endfunction

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐