在 java 中,所有的数字都是有符号的,即可以表示负数,也可表示正数,如:byte、short、int、long、float 和 double)。例如:byte,长度为8位;如果是无符号的,则可以表示的范围为 0~2^8(0~255);如果是有符号的,则可以表示的范围为 -128~127。

实例:我们以 0xB8 为例,该实例将借助 Windows 自带的计算器进行分析。如下:

(1)打开计算器,选择“程序员”模式,选择“HEX”,输入B8。如下图:

在上图中,D8 的 二进制 1011 1000,最高位为 1,则为负数(十进制-72)。我们点击“BYTE”按钮,将 byte 扩展为 word。扩展后如下图:

此时,B8扩展为FFB8,但是十进制还是-72,而二进制为 1111 1111 1011 1000,和前面 byte 的二进制 1011 1000,只是在前面添加了8个1。而我们的目的是将二进制 1011 1000 完全当做数字显示,而不把第一位当做符号位。因此,可以使用与(&)操作符,将二进制 1111 1111 1011 1000 前面的 8 个1全部设置为0,得到 0000 0000 1011 1000,这样就得到我们所要的无符号表示了。1111 1111 1011 1000

0000 0000 1111 1111      & 与

------------------------------------

0000 0000 1011 1000

接下来我们就可以写 java 代码来验证,代码如下:public class Test {

public static void main(String[] args) {

byte b = (byte)0xB8;

System.out.println("b=" + b);

short s = (short)b;

System.out.println("s=" + s);

s = (short)(s & 0x00FF);

System.out.println("s=" + s);

}

}

输出结果:b=-72

s=-72

s=184

上面仅仅演示了 byte 的转换方法,short、int 依次类推。

java short 无符号_Java 表示无符号整数相关推荐

  1. java int 无符号_Java 无符号数据类型

    Java数据类型教程 - Java无符号数据类型 Java不支持无符号数据类型. byte,short,int和long都是有符号数据类型. 对于有符号数据类型,值范围的一半存储正数,一半用于负数,因 ...

  2. Java short 无符号右移_char类型byte类型或short类型进行无符号右移遇到的神奇问题...

    代码 package com.ggp.test.Third; /** * @Author:ggp * @Date:2019/7/27 17 23 * @Description: */ public c ...

  3. java byte 无符号类型_获取java byte的无符号数值

    byte a = (byte)234; System.out.println(a); 上面的代码,结果是-22,因为java中byte是有符号的,byte范围是-128~127. 如果想输出234,该 ...

  4. java int转无符号_Java中int或long等整型数值如何转换为无符号整数

    Java8 为 Integer.Long包装类增加了如下方法: static  String  toUnsignedString(int/long i):将指定int或long型整数转换为无符号整数对 ...

  5. java int转无符号_Java 中使用无符号整型(unsigned int)的使用方法

    背景 计算机科班出身大多学过离散数学,或者理工类专业也大多学习过 C 或 C++ 语言,从中我们了解到基本类型的整形有 short.int.long 等,还分别有无符号(unsigned)和带符号(s ...

  6. java中无符号右移怎么移_Java | java中>>(右移)和>>>(无符号右移)的区别...

    1. >> 右移 二进制码整体右移,如果最高位是0,左移空的位就填入0:如果最高位是1,右移空的位就填入1. 正数有符号右移 首先计算4>>2 将4转为二进制 0000 010 ...

  7. java中无符号类型的处理[转]

    在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换. 方案一:如果在Java中进行流(Stream)数据处理,可以用DataInputStream类对Stre ...

  8. java乘方运算符号_Java 4. 运算符号

    java运算符 运算符 用来指明对于操作数的运算方式 按照操作数的数目来进行分类 单目 双目 三目 a++ a+b (a>b)?x:y; 按照运算符的功能来进行分类 算术运算符 [+ - * / ...

  9. java 且 或 符号_Java 、、|、||、^、、、~、等运算符

    &(按位与) 运算规则:两个为真才为真 (1&1=1 , 1&0=0 , 0&1=0 , 0&0=0) 例:3&5=1 3的二进制位是0000 0011 ...

最新文章

  1. 并行程序设计报告(MPI并行计算π,实现mandelbrot集)
  2. Linux服务器常见问题
  3. android 平板安装程序开发者,android – 限制平板电脑中的应用安装
  4. 机器学习之支持向量机
  5. day22-面向对象之封装
  6. 收藏 | 机器学习领域必知必会的12种概率分布(附Python代码实现)
  7. 集合框架(List容器)
  8. 如何用轻量协作工具做bug管理
  9. C# 根据年月日计算星期几
  10. 监控视频中人的特征识别
  11. 2004-2020年数学建模美赛O奖论文合集(免费)
  12. 微信开发api文档地址
  13. 目标检测算法YOLO3论文解读
  14. C语言实现电脑关机程序
  15. 【MATLAB】进阶绘图 ( 进阶绘图展示 | 对数图 | semilogx 半对刻度数图 | semilogy 半对数刻度图 | loglog 双对数刻度图 )
  16. Python 名称空间以及函数的补充
  17. 利用GAN生成动漫头像
  18. “中年跳槽,伤筋动骨”:35岁跳槽,你可要想清楚
  19. 记录在APIO2019前
  20. 用数字暗示我喜欢你_我喜欢数字!

热门文章

  1. linux 重启网卡 Device eth0 has different MAC address than expected,
  2. 徐州文广旅行业安全监管平台入围2020年度江苏省智慧文旅培育项目
  3. 1.Html基本控件介绍
  4. 2022前端面经---改变this指向问题(call、apply、bind)
  5. Mongodb更新数组$sort操作符
  6. 小觅深度版-realsense系列,深度相机对比
  7. 第一次Scrum冲刺-Life In CCSU
  8. 继中国天眼之后,贵州再现“天眼”...
  9. 代码命名_肮脏的代码问题:通过良好的命名习惯来改善您的游戏
  10. 使用PowerMap生成地图图文