javascript - 为什么 .toString(16) 将 rgb、十进制或其他输入转换为十六进制

标签 javascript hex rgb

我已经尝试在所有可能的地方进行搜索,以找到关于为什么 .toString(16) 将数字转换为十六进制值的答案。我的第一个问题是,为什么是 16?我的第二个问题是,即使我没有看到任何字母进入代码,这怎么能返回字母。例如,我不明白以下代码如何返回 ff 而不是数字。

var r = 255;
r.toString(16); //returns ff

如果有人对这是为什么有任何链接或见解,请告诉我。我很好奇。提前致谢!

最佳答案

十六进制是以16为底。分解的话:hexa,意思是6;十进制,表示 10。10 + 6 = 16。几个主要基数是:

  • 基数 2:二进制,2 个数字:[0, 1]
  • 8 进制:八进制,8 个数字:[0, 7]
  • 以 10 为基数:十进制,10 个数字:[0, 9]
  • 16 进制:十六进制,16 个符号:[0, 9] 和 [A, F]

根据 MDN documentation :

For Number objects, the toString() method returns a string representation of the object in the specified radix.

Parameters

radix: Optional. An integer between 2 and 36 specifying the base to use for representing numeric values.

这意味着它将数字转换为字符串,并基于基数。 Number.prototype.toString 的语法是:

number.toString([radix])

其中 radix 是可选的。如果你指定基数,它会用那个基数转换,所以 16 是十六进制。如果未指定 radix,则假定为 10(十进制)。这是一个片段:

var num = 16;

console.log(num.toString()) //"16", base 10 is assumed here if no radix given
console.log(num.toString(16)) //"10", base 16 is given

现在,关于 RGB 值:以 (255, 255, 255) [white] 为例。每个单独的值(红色、绿色或蓝色)都以十六进制表示。由于 255 是 0xFF 或只是十六进制的 FF,因此完整的表示形式是 FFFFFF,或者您看到的 ffffff

关于javascript - 为什么 .toString(16) 将 rgb、十进制或其他输入转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39651531/

相关文章:

java - 字符串等价

c# - IFormattable.ToString 无法按预期进行十六进制格式化

c++ - 使用 Mat OpenCV 访问像素

python - 在 Python 中将整数转换为 2 字节的十六进制值

opencv - 从网络摄像头捕获YUVY(YUY2)图像

c++ - alpha 混合后获取像素颜色

javascript - 使用 ng-transclude 包装指令内容不起作用

javascript - touchstart 处理程序后的 touchmove 处理程序将无法工作

Javascript/Jquery - 实现包含多个组件的文本字段

javascript - Fabric.js 在组后插入