计算 4*4 最快实现方式是什么?

不知道位移是不是最快的,还是有其他更快的方式?

还有 4*4*4*4 呢?

計算機得到 4*4 答案最快的方法是預先在代碼中直接寫常數 16(不過一般編譯器會也幫你這麼幹)。

但若是 n*4 最快的方法,位移!除非 n = 0(這時候直接返回 0 纔是最快的)。

不過現代 CPU 計算乘法效率已經跟加法似的了,編譯器優化的水平也不是懂一點技巧就能藐視的了,所以,實際情況,直接寫成 4*4,放心地交給編譯器優化(計算機最懂計算機!)纔是最快的(無論從哪個角度哦)。

long long powll(long long a, long long b)
{
    long long ret = 1;
    while (b) {
        if (b & 1) ret *= a;
        a *= a;
        b >>= 1;
    }
    return ret;
}

从通用的角度还是位运算比较靠谱 但是针对某一个点优化直接做成常量就完了么

好像是位移。这是面试题吧

计算器…….

  • C/C++程序的存储空间布局
  • linux下accept之前异常终止连接问题?
  • 腾讯笔试题 printf
  • c++ 请问这里&能不能删除,关于引用的引用
  • C# 未能加载文件或程序集的问题
  • c++:举一个函数形参不能是引用的例子
  • C/C++中枚举值的访问方法
  • 线程暂停和唤醒的问题
  • PCM 音频放大或者缩小的算法
  • C联合体赋值报错?
  • static void (* __set_malloc_handler(void (*__f)()))()是什么意思