在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
利用socket进行网络传输的时候往往需要将int转换为bytes,将string转换为bytes以及一些其他类型的数据转换 java和c类型的区别: 变量类型 C中字节数 Java中字节数 char 1 2 byte 无 1 short 2 2 int 4 4 long 4 8 int 和bytes int-bytes 1:Integer.toString(int b).getBytes()); 2: public static void int2Bytes(int i, byte[] buf, int offset) { buf[offset] = (byte) i; i >>= 8; buf[offset + 1] = (byte) i; i >>= 8; buf[offset + 2] = (byte) i; i >>= 8; buf[offset + 3] = (byte) i; } bytes-int 1:Integer.parseInt((bytes[] b).toString()) 2: private static int byte2Int(byte[] bs) { int retVal = 0; int len = bs.length < 4 ? bs.length : 4; for (int i = 0; i < len; i++) { retVal |= (bs[i] & 0xFF) << ((i & 0x03) << 3); } return retVal; // 如果确定足4位,可直接返回值 //return (bs[0]&0xFF) | ((bs[1] & 0xFF)<<8) | ((bs[2] & 0xFF)<<16) | ((bs[3] & 0xFF)<<24); } int和String int-String int i 1:Integer.toString(i,xx); //xx为想要用什么进制来表示,缺省为10进制 2:i+" "; 3:String.valueOf(i);//和1不同的是他可以转换的除了对象还可以为基本数据类型比如long boolean double //而且i可以为null但是1的i为null的话就会报错抛出异常 String-int String s 1:Integer.parseInt(s)
bytes和String String-bytes:(String a) 1:a.getBytes(x);//x为指定的编码,缺省的话为utf-8 //同一个字符串调用a.getBytes()两次并且分别打印,他们的内容会不同,调用一次返回的都是一个新的数组对像, 你打印的是对象引用的哈希码(不是对像里面的内容), //肯定是不一样的(因为每次返回都是一个新的变量).他们的内容是一样的. 2:(byte)a.charAt(i) bytes-String :bytes[] b 1:String a=new String(b,x);//x为指定的编码,缺省的话为utf-8 2: StringBuffer sb=new StringBuffer(); for(int i=0;i<b.length;i++){ sb.append((char)b[i]); } System.out.println(sb.toString()); 特别注意编码问题:
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论