关于byte 进制 float String 编码 16进制字符串转16进制byte的问题

简介: 首先 只有String才与编码有关; byte与其他类型转换时,要注意大端点还是小端点, 编码: Ascii Unicode gbk utf-8等等  byte 占 8位 可由两个16进制数(0xff)组成,一个16进制占4位,也可由8位二进制数组成等等,与编码没关系,但可用2进制表示,也可由其他进制表示。 “0xff”这样的16进制字符串转换成16进制byte Stri

首先 只有String才与编码有关;

byte与其他类型转换时,要注意大端点还是小端点,

编码: Ascii Unicode gbk utf-8等等 

byte 占 8位 可由两个16进制数(0xff)组成,一个16进制占4位,也可由8位二进制数组成等等,与编码没关系,但可用2进制表示,也可由其他进制表示。

0xff”这样的16进制字符串转换成16进制byte

String[] s="0X0C 0X03 0X00 0X04 0X00 0X02 0X84 0XD7".replace("X", "x").split(" ");
byte[] b=new byte[s.length];
for(int i=0;i<s.length;i++){
b[i]=(byte)Integer.parseInt(s[i].substring(2),16);
}
System.out.println(Arrays.toString(b));


把byte[n]转换成String;

new String(byte[n],0,length,"gbk");


float占 4字节 ,float与byte类型转换

都是通过移位来实现的

 4byte转换成float

左移位
/**
* 字节转换为浮点

* @param b 字节(至少4个字节)
* @param index 开始位置
* @return
*/
public static float byte2float(byte[] b, int index) {  
   int l;                                           
   l = b[index + 0];                                
   l &= 0xff;                                       
   l |= ((long) b[index + 1] << 8);                 
   l &= 0xffff;                                     
   l |= ((long) b[index + 2] << 16);                
   l &= 0xffffff;                                   
   l |= ((long) b[index + 3] << 24);                
   return Float.intBitsToFloat(l);                  
}

  float转换成4byte

   右移位

/**
 * 浮点转换为字节
 * 
 * @param f
 * @return
 */
public static byte[] float2byte(float f) {

// 把float转换为byte[]
int fbit = Float.floatToIntBits(f);

byte[] b = new byte[4];  
    for (int i = 0; i < 4; i++) {  
        b[i] = (byte) (fbit >> (24 - i * 8));  
    } 
    
    // 翻转数组
int len = b.length;
// 建立一个与源数组元素类型相同的数组
byte[] dest = new byte[len];
// 为了防止修改源数组,将源数组拷贝一份副本
System.arraycopy(b, 0, dest, 0, len);
byte temp;
// 将顺位第i个与倒数第i个交换
for (int i = 0; i < len / 2; ++i) {
temp = dest[i];
dest[i] = dest[len - i - 1];
dest[len - i - 1] = temp;
}
    
    return dest;
    
}


目录
相关文章
|
8月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
465 100
|
8月前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
620 99
|
8月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
8月前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
9月前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
435 92
|
10月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
488 14
|
数据处理
鸿蒙开发:ArkTs字符串string
字符串类型是开发中非常重要的一个数据类型,除了上述的方法概述之外,还有String对象,正则等其他的用处,我们放到以后得篇章中讲述。
1015 19
|
Java 程序员
课时16:String字符串
课时16介绍了Java中的String字符串。在Java中,字符串使用`String`类表示,并用双引号定义。例如:`String str = &quot;Hello world!&quot;;`。字符串支持使用“+”进行连接操作,如`str += &quot;world&quot;;`。需要注意的是,当“+”用于字符串与其他数据类型时,其他类型会先转换为字符串再进行连接。此外,字符串中可以使用转义字符(如`\t`、`\n`)进行特殊字符的处理。掌握这些基本概念对Java编程至关重要。
206 0