当前位置: 首页 > news >正文

网站开发专科毕业论文范文范文会计培训机构

网站开发专科毕业论文范文范文,会计培训机构,重庆做商城网站建设,js做的携程网站文章目录 前言一、无符号字节转为int1.前置知识2.无符号转int代码3.Java中字节转为int 二、字节缓冲流1.基础知识2.String与ByteBuffer转换 总结 前言 Java 中基本类型都是有符号数值,如果接收到了 C/C 处理的无符号数值字节流,将出现转码错误。 提示&a…

文章目录

  • 前言
  • 一、无符号字节转为int
    • 1.前置知识
    • 2.无符号转int代码
    • 3.Java中字节转为int
  • 二、字节缓冲流
    • 1.基础知识
    • 2.String与ByteBuffer转换
  • 总结


前言

Java 中基本类型都是有符号数值,如果接收到了 C/C++ 处理的无符号数值字节流,将出现转码错误。


提示:以下是本篇文章正文内容,下面案例可供参考

一、无符号字节转为int

1.前置知识

在线进制转换:https://tool.oschina.net/hexconvert
之前在解析 webscoket 传输得二进制数据时,因为二进制数据传输的是 uint32 无符号整数,需要把有符号的字节转为正常的;
uint32 代表无符号整数,只能存正整数,在内存中占4个字节,byte[4],0到4294967295,Java中 int 为32位有符号整数,占4字节,-2147483648 到 2147483648。

2.无符号转int代码

public static long bytes2int(byte[] buf){long anUnsignedInt = 0;int firstByte = 0;int sceondByte = 0;int thirdByte = 0;int fourthByte = 0;int index = 0;firstByte = (0x000000FF & ((int) buf[index+3]));sceondByte = (0x000000FF & ((int) buf[index+2]));thirdByte = (0x000000FF & ((int) buf[index+1]));fourthByte = (0x000000FF & ((int) buf[index]));anUnsignedInt = ((long) (firstByte << 24 | sceondByte << 16 | thirdByte << 8 | fourthByte)) & 0xFFFFFFFFL;return anUnsignedInt ;
}

3.Java中字节转为int

public static int byteArrayToInt(byte[] bytes) {int n = 0;for (int i = 0; i < 4; i++) {n += bytes[i] << i*8;}return n;
}

二、字节缓冲流

1.基础知识

  • 分配一个指定大小的缓冲区
// 1.分配一个指定大小的缓冲区
ByteBuffer buf = ByteBuffer.allocate(1024);
System.out.println(buf.position); 	//0
System.out.println(buf.limit); 		//1024
System.out.println(buf.capacity); 	//1024
System.out.println(buf.mark); 
  • 利用put()方法进行存储数据
// 2.利用put()方法进行存储数据
String str = "hello nio";
buf.put(str.getBytes());
System.out.println(buf.position); 	//9
System.out.println(buf.limit); 		//1024
System.out.println(buf.capacity); 	//1024
System.out.println(buf.mark); 
  • 切换读取数据的模式
// 3.切换读取数据的模式
buf.flip();
System.out.println(buf.position); 	//0
System.out.println(buf.limit); 		//1024
System.out.println(buf.capacity); 	//1024
System.out.println(buf.mark);
  • 利用get()方法读取数据
// 4.利用get()方法读取数据
byte[] dst = new byte[buf.limit()];
buf.get(dst);
System.out.println(new String(dst, 0, dst.lenth));System.out.println(buf.position); 	//9
System.out.println(buf.limit); 		//9
System.out.println(buf.capacity); 	//1024
System.out.println(buf.mark

2.String与ByteBuffer转换

import java.nio.ByteBuffer;  
import java.nio.CharBuffer;  
import java.nio.charset.Charset;  
import java.nio.charset.CharsetDecoder;  public class Test {  /** * String 转换 ByteBuffer * @param str * @return */  public static ByteBuffer getByteBuffer(String str) {  return ByteBuffer.wrap(str.getBytes());  }  /** * ByteBuffer 转换 String * @param buffer * @return */  public static String getString(ByteBuffer buffer) {  Charset charset = null;  CharsetDecoder decoder = null;  CharBuffer charBuffer = null;  try {  charset = Charset.forName("UTF-8");  decoder = charset.newDecoder();  // charBuffer = decoder.decode(buffer);//用这个的话,只能输出来一次结果,第二次显示为空  charBuffer = decoder.decode(buffer.asReadOnlyBuffer());  return charBuffer.toString();  }  catch (Exception ex) {  ex.printStackTrace();  return "";  }  }  
}

总结

生活, 一半是回忆, 一半是继续。 把所有的不快给昨天, 把所有的希望给明天, 把所有的努力给今天。

在这里插入图片描述

http://www.khdw.cn/news/65035.html

相关文章:

  • 东莞黄页企业名录无锡网站建设优化公司
  • 建筑公司网站md0095设计风格网络服务合同
  • 网站怎么做seo、项目推广方式有哪些
  • 泰安网站建设制作电话号码网站推广工具
  • 沈阳网站制作优化沧州网站建设推广
  • 广东建设继续教育网站营销咨询公司排名前十
  • 抖音代运营报价明细网站优化北京seo
  • 网站 默认页seo网站编辑是做什么的
  • 中软国际软件培训怎么样优化大师免费版下载
  • 自己如何做独立网站网页制作免费模板
  • vps做自己的网站南宁seo推广公司
  • 网站使用mip后效果怎么样谷歌google官网
  • 高端网站建设好的公司seo去哪里学
  • 做一个网站链接怎么做系统优化app
  • 西安牛二网络科技有限公司seo怎么优化
  • wordpress 充值宁波seo公司推荐
  • Drupal对比WordPress深圳seo推广
  • 开发网站的财务分析今日百度小说排行榜
  • 做办公室的网站第一营销网
  • 设计网站推广方案友情链接是什么
  • 网站怎么做电脑系统下载长沙网站优化seo
  • 阿里自助建站平台爱站网关键词查询工具
  • 建设雅马哈摩托车官方网站2023b站推广大全
  • 做网站开发一般用什么语言b站推广平台
  • 在哪做网站专业网络营销软文范例大全800
  • 日本wifi网站网站没有友情链接
  • 购物网站建设和使用网络营销战略
  • 重庆网站建设有限公司新闻发稿推广
  • 福州做网站建设杭州seo软件
  • 自己做网站排名好吗谷歌外贸网站