我已经尝试在任何地方搜索,找到答案为什么.toString(16)将数字转换为十六进制值。我的第一个问题是,为什么16?我的第二个问题是,即使我看到没有字母进入代码,这怎么回信。例如,我不明白以下代码如何返回ff而不是数字。
var r = 255;
r.toString(16); //returns ff
如果有人对此有任何链接或见解,请告知我们。我很好奇。提前谢谢!
答案 0 :(得分:6)
十六进制是基数16.分解单词:hexa,意思是6;十进制,意思10. 10 + 6 = 16.一些主要的基础是:
对于
Number
个对象,toString()
方法返回指定基数中对象的字符串表示。参数
<强>基数强>: 可选的。一个介于2和36之间的整数,指定用于表示数值的基数。
这意味着它将数字转换为字符串,并基于基数。 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)[白色]为例。每个单独的值(红色,绿色或蓝色)以十六进制表示。由于255为0xFF
或仅为FF
十六进制,因此您看到的完整表示为FFFFFF
或ffffff
。
答案 1 :(得分:1)
这是因为您使用16作为基数,如下所述:
http://www.w3schools.com/jsref/jsref_tostring_number.asp
如果您只是想回来"16"
,您可以这样做:
var number = 16;
var numberAsString = number.toString();
答案 2 :(得分:1)
返回“字符串”,因为toString()
设置为返回String
。
此外,它是toString(16)
,因为十六进制表示16,它是16。因此,toString(16)
将给定变量转换为所需形式的String
,在这种情况下,您希望它是十六进制形式。
答案 3 :(得分:0)
http://www.w3schools.com/jsref/jsref_tostring_number.asp
参数:radix
描述:可选。用于表示数字的基数 值。必须是2到36之间的整数。
- 2 - 数字将显示为二进制值
- 8 - 该数字将显示为八进制值
- 16 - 数字将显示为十六进制值
示例使用不同的基数将数字转换为字符串:
var num = 15; var a = num.toString(); var b = num.toString(2); var c = num.toString(8); var d = num.toString(16);
a,b,c和d的结果将是:
15 1111 17 f