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进制的整型?

c语言中如何将16进制字符串转化成10进制整数?

qt怎样将字符串转化为16进制

用C语言将16进制数转化为10进制数 16进制数以字符串形式输入 最好运用数组 谢谢

lua 转换16进制字符串为10进制数值

java中,如何将double类型数据转换为16进制字符串或者是16进制字节数组