gpt4 book ai didi

javascript - if block 中具有不同数值的此数字函数的含义

转载 作者:行者123 更新时间:2023-11-30 19:53:57 25 4
gpt4 key购买 nike

想知道这个encode_number 函数是什么意思,所有不同的数字。具体来说,我知道 32768 是 16 位 (Math.pow(2, 16)/2),最后一个 else block 是(来自源代码注释)一个 32 位数字。但我不明白这些数字是从哪里来的:107、139、108、1131、247、251、28、29。想知道这个函数是什么意思。来自 here .

function encode_number(v) {
if (v >= -107 && v <= 107) {
return [v + 139]
} else if (v >= 108 && v <= 1131) {
v = v - 108
return [(v >> 8) + 247, v & 0xFF]
} else if (v >= -1131 && v <= -108) {
v = -v - 108
return [(v >> 8) + 251, v & 0xFF]
} else if (v >= -32768 && v <= 32767) {
// encode_number16
return [28, (v >> 8) & 0xFF, v & 0xFF]
} else {
// encode_number32
return [29, (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF]
}
}

最佳答案

嗯,这很简单:

因此,此函数用于为属于 OpenType 的“紧凑字体格式”编码某些内容。但这实际上意味着是什么我不知道;)

关于javascript - if block 中具有不同数值的此数字函数的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54213047/

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