解决方案 »

  1.   

    没有什么改进的必要。如果非要说改进的话,那就是你应该拆开这两个三元表达式。因为在num<0和num>255的时候会进行多余的判断和处理if(num < 0)
       return 0;
    else if(num > 255)
       return 255;
    else
       return (byte)num;
      

  2.   

    这样子可以吗?return num < 255 ? (byte)(num & (((uint)num >> 31) - 1)) : 255;
      

  3.   

    if(num>255)
        num=255;
    else if(num<0)
       num=0;
    return (byte)num;
      

  4.   

    不好意思,这个我没讲清楚,我这边做视频转换,这个语句占用了差不多百分之二十的CPU资源,我想问的是能不能从算法的角度去改写这个语句从而提高效率。
      

  5.   

    不能光看CPU占用,还要看调用次数,综合的来看。如果想单纯优化这个方法,首先就像我上面说的,你的两个嵌套的三元表达式首先要拆开,避免多余的操作。
    然后你可以分析一下数据,看看那种数据多,大于255,小于0,处于之间,再决定判断的顺序。