`

js如何利用二进制巧妙的产生随机的16进制颜色

阅读更多
"#"+(~~(Math.random()*(1<<24))).toString(16);

 分析:

  • 首先Math.random()和toString()函数就不用多讲了,相信大家都懂的
  • 1<<24
    二进制中的位运算,将1左移24,也就相当于1乘以2的24次方,这不就是16进制颜色最大值吗(F转换为二进制为1111);
  • ~~
    这个又是什么东东呢,它是二进制里面的非运算,也就是按位取反操作,一个~表示取反,那么两个~当然就表示它自己了,有人可能会问这不是多此一举吗,那你就大错特错了,在js的二进制世界里,位操作符并不直接操作64位的值,而是先将64位的值转换为32位的整数,然后再执行操作,这样就很明白了,如果产生了随机的二进制小数,那么一旦遇到位操作符它就会转换为整数,这样就避免了会产生类似这样比较搞笑的结果:#b791d0.34201e

最后,做个小例子吧

function demo(n){
		var i=1;
		for(;i<=n;i++){
			var color="#"+(~~(Math.random()*(1<<24))).toString(16);
			var span=document.createElement('span');
			span.innerHTML=i<10?"0"+i+"  ":i+"  ";
			span.style.color=color;
			document.body.appendChild(span);
			if (i%10==0) {document.write('<br/>')}
		}
	}
	demo(100);

 效果图

有兴趣的小伙伴可以自己去测试一下,但是需要注意一点:二进制在浏览器上貌似是以补码的形式输出的。正数的补码是它本身,负数的补码是它的反码加1。

  • 大小: 7.3 KB
分享到:
评论

相关推荐

    16进制颜色表16进制颜色表

    16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制颜色表16进制...

    16进制显示转换二进制.vi_16进制转化二进制_

    标题"16进制显示转换二进制.vi_16进制转化二进制_"暗示这是一个虚拟仪器(VI)程序,专门用于将16进制数值转换成2进制表示。这种转换在处理二进制数据、内存表示、网络通信和许多其他IT应用中非常常见。 16进制...

    16进制转换成二进制

    转换工具不仅限于16进制到二进制,还可以实现二进制到16进制、16进制到十进制、十进制到二进制等多种转换,这些都是数字系统和计算机科学中的基本操作。通过理解和掌握这些转换,我们可以更好地理解计算机如何处理...

    将二进制文件转换为16进制

    而十六进制(Hexadecimal)是一种逢16进1的进位制,用0-9和A-F这16个符号来表示,方便人类理解和处理二进制数据。在编程中,二进制和十六进制之间转换非常常见,特别是在处理底层数据、内存分析或调试时。 在"VC"...

    JS16进制颜色选择器

    在这个“JS16进制颜色选择器”项目中,开发者使用JavaScript实现了一个功能丰富的颜色选择工具,允许用户直观地选取并查看16进制颜色代码。 16进制颜色代码是表示颜色的一种常见方式,它使用六个十六进制数字来表示...

    Labview 16进制转换为二进制

    适用于在通讯时可以用到的实例,16进制转换为二进制,已经测试OK.

    随机生成16进制的颜色值

    可以随机获得任意16进制的颜色,添加了一个定时器,让颜色自动变化!

    将二进制转换为16进制

    在编程中,十六进制常用于表示颜色代码、内存地址等,因为它比二进制更简洁且易于人类阅读。 将二进制转换为十六进制的基本步骤如下: 1. **分组**:由于16是2的四次幂(16 = 2^4),因此我们每次可以将二进制数从...

    二进制变16进制matlab程序

    二进制变16进制matlab程序,程序简单实用。

    MATLAB二进制转十六进制函数

    MATLAB会按照每4位二进制转换为1位十六进制的规则进行转换,因为一个十六进制数字可以表示16种状态(0-9和A-F),而四位二进制正好能表达16种状态。 例如,如果你有一个二进制字符串`'10110101'`,你可以使用`bin2...

    labview 将16进制格式数据转换位二进制字符串,不限输入长度,精准转换;同时包含了普通的16进制字符串先转换为16进制格式

    labview 将16进制格式数据转换位二进制字符串,不限输入长度,精准转换;同时包含了普通的16进制字符串先转换为16进制格式 接口简单,直接调用即可,同时不限制输入长度,同时包含其他函数,将输入的普通字符串转换...

    java随机生成十六进制颜色

    ### Java随机生成十六进制颜色知识点详解 #### 一、十六进制颜色代码的基本概念 在Web开发中,颜色常以十六进制形式表示。一个完整的十六进制颜色代码由六个字符组成,其中前两个字符表示红色(Red)的强度,中间...

    labview十六进制转二进制

    labview十六进制转二进制,输入字符串控件是十六进制显示!不是正常显示那种超级简单的转换!

    二进制BIN和16进制HEX相互转换工具,包含2个工具

    二进制系统基于2的幂,仅使用0和1两个数字,而十六进制是二进制的便捷表示,它使用16个符号(0-9和A-F)来代表二进制的4位。这两种形式之间的转换对于理解和处理计算机数据至关重要。 标题提到的“二进制BIN和16...

    javascript 二进制操作

    用JAVASCRIPT操作二进制数据,把它们变成16进制字符串。也可以把字符串变回二进制。还有按ieee-754标准读写INT,FLOAT等数据类型,和DataInputStream/DataOutputStream非常相似.

    二进制文件转16进制文本

    将二进制文件方便的转16进制文本,方便查看

    Lua小程序十六进制字符串和二进制数据间的转换[借鉴].pdf

    Lua 小程序十六进制字符串和二进制数据间的转换 本篇文章将介绍 Lua 小程序在十六进制字符串和二进制数据之间的转换。Lua 是一种轻量级、高效、灵活的脚本语言,广泛应用于游戏、软件开发等领域。在数据处理过程中...

    matlab实现从txt中读取16进制数据并转换为二进制01矩阵,处理后再转换为16进制输出到txt

    我在互联网上找了很久,发现没有人发布关于matlab从txt文档中读取16进制数转换为矩阵,再转换为2进制数矩阵,再按位拆分为01矩阵,处理...程序实现的是读取24位的16进制数转为对应的二进制01矩阵再转回十六进制输出。

Global site tag (gtag.js) - Google Analytics