gpt4 book ai didi

javascript - 为什么 4294967295 >> 24 == -1 在 Javascript 中?

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:45 24 4
gpt4 key购买 nike

我正在使用 Javascript 计算亮度:

luminosity = (5036060 * backgroundColor.red + 9886846 * backgroundColor.green + 1920103 * backgroundColor.blue) >> 24;

对于颜色为白色的情况,即所有 3 个 RGB 值均为 255,我得到的结果为 -1。我在 Javascript 中明确测试了值“4294967295 >> 24”是 -1。

为什么?

最佳答案

JavaScript 确实使用 32 位整数进行按位运算。对于带符号的 32 位整数,无符号值 +4294967295-1 具有相同的表示形式 - 一系列 32 1 位。如果您使用 signed right shift 移动它运算符,它将被符号位填充,-1 >> x 总是以 -1 结束。

使用 unsigned right shift运算符代替:

4294967295 >>> 24 // 255

关于javascript - 为什么 4294967295 >> 24 == -1 在 Javascript 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com