zoukankan      html  css  js  c++  java
  • js位运算符的应用

    x | 0,x >> 0,~~x

    这3种运算符都可以取整

    1. 取整,正数取地板值Math.foor,负数取天花板值Math.ceil
    2. 非数字转为0,null和undefined转换为0

    x >>> 0

    1. 取整,正数取地板值,负数无用
    2. 非数字转为0,null和undefined转换为0

    ~x

    1. -1转为0
    2. 值都转换为-(Math.floor(x)+1)

    应用

    1. if(~arr.indexOf(el))

    可以判断包含el,返回-1会转换为0,判断为false,其他判断为true

    2. x = ~~a

    a若为null和undefined,转换为0,比parseInt方便

    3. var len = O.length >>> 0;

    length若为null或undefined,转换为0,其他正值取整

    4. 使用&,>>,|来完成rgb值和16进制颜色值之间的转换

    16进制颜色值转RGB:

    function hexToRGB(hex){
        var hex = hex.replace("#","0x"),
            r = hex >> 16,
            g = hex >> 8 & 0xff,
            b = hex & 0xff;
        return "rgb("+r+","+g+","+b+")";
    }

    RGB转16进制颜色值:

    function RGBToHex(rgb){
        var rgbArr = rgb.split(/[^d]+/),
            color = rgbArr[1]<<16 | rgbArr[2]<<8 | rgbArr[3];
        return "#"+color.toString(16);
    }

    运行 hexToRGB("#ffffff") 返回 "rgb(255,255,255)"

    运行 RGBToHex("rgb(255,255,255)") 返回 "#ffffff"

  • 相关阅读:
    一些前台技巧
    javascript中的面向对象
    vs.net 常用快捷键
    js和C#中的进制转换方法
    MFC中CDC相关图形,文本的一些使用方法(转)
    poj1505
    poj1401
    poj2533
    poj1504
    poj1384
  • 原文地址:https://www.cnblogs.com/mengff/p/12865740.html
Copyright © 2011-2022 走看看