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

【Java】readUnsignedShort()与readShort()

readUnsignedShort()与readShort()区别

主要区别在于他们处理读取的两个字节的方式以及返回值类型和范围

1. 返回值类型
readUnsignedShort()
  1. 返回值是int类型
  2. 他将两个字节组合成一个无符号的16位整数,返回值范围是065535(即2^16 - 1)
readShort()
  1. 返回值是short类型
  2. 他将两个字节组合成一个有符号的16位整数,返回值为-3276832767(即-2^152^15 -1
2. 数据解释方式
readUnsignedShort()
  1. 将两个字节视为无符号的数据
  2. 高字节(第一个字节)左移8位,低字节(第二个字节)直接相加
    return (ch1 << 8) + (ch2 << 0);
    
  3. 结果是一个非负的(int类型),范围从065535
readShort()
  1. 将两个字节视为有符号数据
  2. 同样的通过右移8位、地位字节直接相加,但最终的会被强制转换为short类型
    return (short) ((ch1 << 8) + (ch2 << 0));
    

实例对比

假设我们从流中读取两个字节,0xFF0x7F
readUnsignedShort()计算过程如下,返回值为65407(无符号)

ch1 = 0xFF (255), ch2 = 0x7F (127)
result = (ch1 << 8) + (ch2 << 0)
       = (255 << 8) + (127 << 0)
       = 65280 + 127
       = 65407

readShort() 计算过程如下

ch1 = 0xFF (255), ch2 = 0x7F (127)
result = (short) ((ch1 << 8) + (ch2 << 0))
       = (short) (65280 + 127)
       = (short) 65407

由于short是有符号类型,65407超过了short的正数范围,会被解释为负数:

result = -129
特性readUnsignedShort()readShort()
返回值类型intshort
数据范围0到65535-32768 到 32767
符号处理无符号(不会出现负数)有符号(可能出现负数)
适用场景解析非负数解析可能出现负数的数据
http://www.dtcms.com/a/91510.html

相关文章:

  • VS Code连接远程服务遇到的问题
  • 神奇的闹钟(算法题)
  • 蓝桥备赛(27)算法篇【二分算法】
  • 【赵渝强老师】达梦数据库的线程结构
  • 若依——基于AI+若依框架的实战项目(原理篇)
  • 23种设计模式-装饰器(Decorator)设计模式
  • C++类与对象-3.23笔记
  • 【Java】Springboot集成itextpdf制作pdf(内附pdf添加表格、背景图、水印,条形码、二维码,页码等功能)
  • 牛客春招刷题训练营 3月25日 Java 查找两个字符串a,b中的最长公共子串 构造C的歪
  • 基于docker-compose 部署可道云资源管理器
  • 系留无人机照明芯片迎来革新:80V耐压输入+FP7195千瓦级大功率调光IC方案落地
  • GitLab 中文版17.10正式发布,27项重点功能解读【三】
  • html方法收集
  • Java 集合操作详解与使用指南
  • UE4学习笔记 FPS游戏制作14 发射抛物线子弹
  • 多维动态规划 力扣hot100热门面试算法题 面试基础 核心思路 背题
  • 第四届能源、电力与电气国际学术会议(ICEPET 2025)
  • 后缀表达式 | 第十届蓝桥杯省赛C++B组
  • 如何使用Xshell连接Linux虚拟机
  • K8S学习之基础五十:k8s中pod时区问题并通过kibana查看日志
  • android Firebase Cloud Messaging (FCM) 接入
  • # 用 Paramiko,轻松掌控远程服务器
  • 0基础 | 制作麦克风音频放大电路
  • 使用redis设置店铺状态
  • 【ESP32-C2】基于 esptool 完成 Secure Boot V2 和 Flash 加密 Development 模式的完整指令序列
  • 遥控器钥匙学习---通过uds指令
  • How to share files with Linux mint 22 via samba in Windows
  • spring - 十二种事务失效场景
  • python虚拟环境安装opus(windows)
  • 大模型重点1 【综述-文字版】