16进制字符串如何转化16进制数值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16进制字符串如何转化16进制数值相关的知识,希望对你有一定的参考价值。
将字符串先转换为字节流,再对每个字节转换为16进制的双字节字符,不到两字节前补0,然后拼接成十六进制长字符串。 参考技术A 如果输入字符串控件的显示方式是16进制的那么转换将无法执行,,请教怎么办,,我串口中读到的字符串格式是16进制的,所以显示的方式只能是16进制的不是正常显示,比如格式是:162A 22,就无法转成10进制数值。。请求赐教如何将16进制字符串(显示的方式是16进制的)转换成10进制的数值常用的属性和方法
1、toString(数字转字符串)
toString方法可以接受一个参数,表示输出的进制。如果省略这个参数,默认将数值转成十进制的字符串;否则就根据参数指定的进制,将一个数字转化成某个进制的字符串
toString方法只能将十进制的数,转为其他进制的字符串。如果要将其他进制的数,转回十进制,需要使用parseInt方法
示例:
( 10 ).toString( ) // "10"
( 10 ).toString( 2 ) // "1010"
( 10 ).toString( 8 ) // "12"
( 10 ).toString( 16 ) // "a"
10["toString"]( 2 ) // "1010"
注意:上面代码中,数字一定要放在括号里,这样表明后面的点表示调用对象属性。如果不加括号,这个点会被 JavaScript 引擎解释成小数点,从而报错。
2、toFixed(保留数字小数点后几位)
toFixed( )方法将数字转成指定位数的小数的字符串
由于浮点数的原因,小数5的四舍五入是不确定的,使用的时候必须小心。
示例:
( 10 ).toFixed( 2 ) // "10.00"
( 10.005 ).toFixed( 2 ) // "10.01"
注意:上面代码中,数字一定要放在括号里,这样表明后面的点表示调用对象属性。如果不加括号,这个点会被 JavaScript 引擎解释成小数点,从而报错。
3、toPrecision(保留几位有效数字,结果是字符串类型)
该方法用于将一个数转为指定位数的有效数字,用于四舍五入时不太可靠,跟浮点数不是精确储存有关。
示例:
( 12.15 ).toPrecision(3) // "12.2"
( 12.25 ).toPrecision(3) // "12.3"
( 12.35 ).toPrecision(3) // "12.3"
( 12.45 ).toPrecision(3) // "12.4"
4、parseInt(将字符串转为整数)
(1)如果字符串头部有空格,空格会被自动去除。
parseInt( "123" ) // 123
parseInt( " 81" ) // 81
(2)字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
parseInt( "8a" ) // 8
parseInt( "15px" ) // 15
(3)如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。
parseInt( "abc" ) // NaN
parseInt( ".3" ) // NaN
parseInt( "" ) // NaN
parseInt( "+" ) // NaN
parseInt( "+1" ) // 1
parseInt( "-1" ) // -1
所以,parseInt的返回值只有两种可能,要么是一个十进制整数,要么是NaN
(4)如果字符串以0x或0X开头,parseInt会将其按照十六进制数解析。
parseInt( "0x10" ) // 16
(5)如果字符串以0开头,将其按照10进制解析。
parseInt( "011" ) // 11
(6)该方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。
parseInt( "1000" ,10) // 1000
parseInt( "1000" ,2) // 8
parseInt( "1000" ,6) // 216
parseInt( "1000" ,8) // 512
5、parseFloat( 将字符串转成浮点数 )
parseFloat( "3.14" ) // 3.14
parseFloat( "31.4ekdlf" ) // 31.4
parseFloat( "" ) // NaN
6、isNaN
isNaN方法可以用来判断一个值是否为NaN
isNaN( NaN ) // true
isNaN( true ) // false
7、isFinite
isFinite方法返回一个布尔值,表示某个值是否为正常的数值
除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其他的数值都会返回true。
示例:
isFinite(Infinity) // false
isFinite(-Infinity) // false
isFinite(NaN) // false
isFinite(undefined) // false
isFinite(null) // true
isFinite(-1) // true
8、数值的进制
十进制:没有前导0的数值。
八进制:有前缀0o或0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
十六进制:有前缀0x或0X的数值。
二进制:有前缀0b或0B的数值。
示例:
oxff // 255
0o377 // 255
0b11 // 3
如果八进制、十六进制、二进制的数值里面,出现不属于该进制的数字,就会报错。
示例:
0xzz // 报错
0o88 // 报错
0b22 // 报错
通常来说,有前导0的数值会被视为八进制,但是如果前导0后面有数字8和9,则该数值被视为十进制。
示例:
0888 // 888
0777 //511
9、整型,浮点型
Number.parseInt(10.05)
Number.parseFloat(10.05)
10、Number.isInteger()
用来判断一个数值是否为整数(使用===判断)
Number.isInteger(25) // true
Number.isInteger(25.0) // true
Number.isInteger(25.3) // false
Number.isInteger(true) // false
Number.isInteger(null) // false
Number.isInteger() // false
Number.isInteger(‘25‘) // false
以上是关于16进制字符串如何转化16进制数值的主要内容,如果未能解决你的问题,请参考以下文章
C语言 如何将16进制形式的字符串,转化为相同的16进制的整型?