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

戴维·蒂伦

我正在使用以下方法在Javascript中计算亮度:

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

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

为什么?

贝吉

JavaScript确实使用32位整数进行按位运算。无符号值+4294967295与带-1符号的32位整数(一系列32位)具有相同的表示形式1如果使用带符号的右移运算符将其移位,它将被符号位填充,并-1 >> x始终以结束-1

使用无符号右移运算符:

4294967295 >>> 24 // 255

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么4294967295(32位上的最高数字)等于-1?

为什么在JavaScript中“ 1” + +“ 1” =“ 11”但“ 1”--“ 1” = 2

为什么在JavaScript中“〜undefined”为-1?

为什么在JavaScript中(([[] === [])+ /-/)[1] ='a'和(1 + {})[(1 << 1)+1] ='b'是为什么?

为什么Eloquent JavaScript中的此函数示例返回值24?

为什么在Javascript中1 =='1 \ n'为真?

为什么在JavaScript中,`2 << -1'为零而不是1?

为什么1+ []在JavaScript中返回“ 1”?

这个 SQL 是做什么的:SUM(OF A_C2_1-A_C2_24)

这条饼干线是什么意思?(时间()+1*24*60*60;)

为什么在Java中(360/24)/ 60 = 0 ...

为什么将iswitchb从GNU Emacs 24中删除?

为什么1x1大小8位bmp是1082字节24位只是58字节?

每次X列中的数字增加24时,将Y列中的数字增加1。

在ISR()(PIC24H)中将UART1与UART2中继

SQL Server中是否有等效于sysdate-1 / 24的文件?

在 ISO 8601 中,“P1D”是指今晚午夜吗?24 小时后?明晚半夜?

(k << 24)>>> 24在遥感图像读取中的意义是什么?

为什么此结构的大小为24?

为什么IP地址列为172.18.0.150/24?

为什么-1 ** 2是JavaScript中的语法错误?

为什么在JavaScript(Coercion)中1 +'1'='11'和1-'1'= 0?

在 JavaScript 中,为什么 2 > 1 > 0 true 而 8 > 1 > 1 false?

用Javascript为什么-'54'+ 30的结果是-24(在JavaScript中键入强制)

为什么在Python中{1} == Frozenset({1})?

错误:“#”,#,输入,过滤器,第24行第1列(字节528)中的预期输出之一

在R中以60和1分钟的时间间隔创建一个24小时向量

InvalidArgumentError:indexs [24,0] = 335不在[0,304)中[[{{node user-embedding-mlp_1 / GatherV2}}]]

如何从数据库中获取信息集(例如,结果1-24、25-49等)