0xFFFFFF

作者: Anderson_f519 | 来源:发表于2019-03-19 20:02 被阅读0次

    0xFFFFFF或者#FFFFFF 表示白色,和RGB(255, 255, 255)一样。 0x表示16进制.

    颜色有3个部分,红绿蓝。通常每个存储一个单字节。因此可以位于0,255。或者位于0,FF之间。颜色是#RGB, 因此可以为0x0 到0xFFFFFF. 随机数乘以0xFFFFF意味着可以生成任何任何颜色

    "0x" is a prefix meaning "just to be sure, the rest of this is a hex value, okay? Even if it doesn't happen to have any A-F symbols in it, don't go interpreting it as decimal; and especially make sure you don't interpret it as an identifier name."

    0x 可能是最常见的前缀--对于16进制数来说,出现在许多语言和环境里。在汇编语言里,你可能会见到$ 前缀,h 后缀。

    16进制三联体, FF, FF, FF。

    F在16进制中表示十进制的15,FF在十进制就是15*16+15=255。
    0xFFFFFF 等于十进制的16777215
    255 255 255 就是白色

    生成随机颜色

    var getRandomColor = function(){
        return '#'+(Math.random()*0xffffff<<0).toString(16); 
    }
    /*
    其它一切应该都是不言自明的
    random() 生成[0, 1)
    乘以0xffffff 变成[0, 0xffffff)
    这样会产生一个bug, 因为0xffffff 不会产生
    然后取整rounded/floored, 转换成前缀为#的字符串
    */
    

    << 是按位左移运算符,右边的操作数是要移位的位数,移位0位没有效果,按位移位仅为整数定义,严格来说JavaScript没有整数 - 它只有一个由IEEE双精度实现的数字类型。

    为了让 << 有意义,左手操作数必须首先舍入为整数。此操作中使用的舍入类型是截断/截尾,举个例子,小数点右侧的部分都丢掉。这也叫做向零舍入。round-towards-zero (我们通常见到的舍入方法是像最近的整数舍入。 round-towards-nearest,)

    还有以下的舍入类型

    • round-towards-positive-infinity
    • round-towards-negative-infinity
    • round-away-from-zero

    对于正数,round-toward-zero 和Math.floor() 效果一样, 但是写<<0更快. 实际上,写 |0更快,它对值0调用按位OR运算符,它也是一个操作-除了将左侧的操作数截尾为整数之外,没有其他效果。

    https://www.sitepoint.com/javascript-generate-lighter-darker-color/

    相关文章

      网友评论

          本文标题:0xFFFFFF

          本文链接:https://www.haomeiwen.com/subject/hkznmqtx.html