首页 > 其他分享 >解释下`(~~(Math.random()*(1<<24)))`的含义

解释下`(~~(Math.random()*(1<<24)))`的含义

时间:2024-12-28 09:56:42浏览次数:8  
标签:24 浮点数 random 整数 随机 Math

这段代码 (~~(Math.random()*(1<<24))) 在前端开发中可能用于生成一个随机整数。下面我们来分解这段代码,以更好地理解其含义:

  1. Math.random(): 这个函数返回一个[0, 1)之间的随机浮点数,也就是说,它会返回一个大于等于0且小于1的随机小数。
  2. 1<<24: 这是一个位移运算。1 左移 24 位,等价于 1 * 2^24,结果是 16777216。这个数是 2 的 24 次方,代表了一个范围。
  3. Math.random()*(1<<24): 这个表达式会生成一个在 [0, 16777216) 范围内的随机浮点数。
  4. ~~: 这是一个双位非运算符,用于将一个浮点数转换为整数。它基本上是对浮点数进行两次取反操作,第一次取反将浮点数转换为一个负的整数,第二次取反则将其转换回正的整数,但此时小数部分已经被截断。这种方法是一种快速将浮点数转换为整数的技巧,虽然可能不是最直观或最可读的方法。

综上所述,(~~(Math.random()*(1<<24))) 这段代码的作用是生成一个在 [0, 16777215] 范围内的随机整数。这在需要随机性但不需要极大的数值范围时非常有用,例如在前端开发中为元素生成随机ID或者随机排序等场景。

标签:24,浮点数,random,整数,随机,Math
From: https://www.cnblogs.com/ai888/p/18637164

相关文章

  • 24-12-28-pytorch深度学习中音频I/O 中遇到的问题汇总
    文章目录pytorch深度学习中音频I/O中遇到的问题汇总问题1:音频文件格式的读取问题问题2:音频文件绘图问题小结pytorch深度学习中音频I/O中遇到的问题汇总问题1:音频文件格式的读取问题参考链接:torchaudio加载wav报错Couldn‘tfindappropriatebackendtohandle......
  • 关于IntelliJ IDEA 2024安装激活
      6G5NXCPJZB-eyJsaWNlbnNlSWQiOiI2RzVOWENQSlpCIiwibGljZW5zZWVOYW1lIjoic2lnbnVwIHNjb290ZXIiLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJQU0kiLCJmYWxsYm......
  • w124中药实验管理系统
    ......
  • 【2024最新Java面试宝典】—— SpringBoot面试题(44道含答案)_java spingboot 面试题
    1.什么是SpringBoot?SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。2.为什么要用SpringBoot快速开发,快速整合,配置简化、内嵌服务容器3.SpringBoot与Sp......
  • P11454 [USACO24DEC] 2D Conveyer Belt S
    题目大意详细题目传送门一个\(n\cdotn\)的网格\(a\)。每个网格有传送带。其中L,R,U,D就分别代表把传送带上的物体移动到左右上下方向的格子。如果送出了边界就代表送出去了。然后还有?是代表还没有在这个网格上建传送带。\(Q\)次操作,每一次将\(a_{x,y}\)从原先的?......
  • 2024中国AI大模型场景探索及应用报告,大模型!!!
    随着人工智能技术的飞速发展,AI大模型成为引领行业变革的引擎。2024年,中国AI大模型行业规模已达到147亿元,展现出巨大的潜力和发展空间。行业概况:蓬勃发展的AI大模型AI大模型是指拥有大规模参数的神经网络模型,其训练和应用需要大量算力和高质量数据资源。中国AI大模型行业正......
  • 《面试八股文》之2024年GitHub中文社区Java 领域又一份牛逼笔记
        今天讲讲跳槽。新年即将开启,一些不满现状,被外界的“高薪”“好福利”吸引的人,一般就在这时候毅然决然地跳槽了。跳槽是为了寻求更好的发展,但在跳槽前我们也不能确定下家就是更好的归宿,这就更加需要我们审慎地去对待,不能盲目跳槽。其次,我们离职和跳槽,其中的原因很大......
  • Vscode安装使用小白教程(深度学习前置工具2024.12.27)
    这里是Vscode的下载安装和前期工作配置教程,基础讲解。首先我们直接在浏览器搜索Vscode点击下载点击是电脑window系统酒店这个点击这个,就可以下载。下载完成后双击安装不必改动直接安装即可。安装好之后右键快捷方式查看兼容性,勾选以管理员身份运行此程序。双击打开......
  • RT-DETR融合[IJCV2024]LSKNet中的LSKBlock模块
    RT-DETR使用教程: RT-DETR使用教程RT-DETR改进汇总贴:RT-DETR更新汇总贴《LargeSelectiveKernelNetworkforRemoteSensingObjectDetection》一、模块介绍    论文链接:https://arxiv.org/pdf/2303.09030    代码链接:https://github.com/zcab......
  • 运算器(2)HNUST【计算机组成原理】(2024)
    1.实验目的熟练掌握算术逻辑单元(ALU)的应用方法;进一步熟悉简单运算器的数据传送原理;画出逻辑电路图及布出美观整齐的接线图;熟练掌握有关数字元件的功能和使用方法。熟练掌握子电路的创建及使用。2.实验原理本实验仿真单总线结构的运算器,原理如图2-2所示。相应的电路如......