对Java语言的byte类型变量进行无符号提升
2017-09-01 15:12
316 查看
提升 指将范围较窄的类型转化为范围更宽的类型。
Java中所有数值类型(byte, short, int, long)都是有符号类型,遵循符号扩展的原则,即使用最高bit填充提升后的bit,这样可以保证提升后值不变。
但是byte往往用来表示字节,此时它的值应当是无符号的,如果提升时保持无符号的特性,就不能进行类型转化,而要用位操作。
Java中所有数值类型(byte, short, int, long)都是有符号类型,遵循符号扩展的原则,即使用最高bit填充提升后的bit,这样可以保证提升后值不变。
byte b = -0x5c; short s = b; // -0x5c int i = b; // -0x5c
但是byte往往用来表示字节,此时它的值应当是无符号的,如果提升时保持无符号的特性,就不能进行类型转化,而要用位操作。
byte b = -0x5c; // 0xa4 int i = b & 0x0ff; // 0xa4
相关文章推荐
- Java中的byte,short,char进行计算时都会提升为int类型。
- java学习笔记(常量 二进制 其他进制 负数进制 变量 自动类型提升 强制类型转换 )
- 黑马程序员—Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- Java语言中,以String作为类型的变量在作为方法参数时所表现出的“非对象”的特性。
- 《转》 Java中byte类型变量做& 0xff运算的理解
- 第3章 Java语言基础----声明成员变量,对变量进行赋值
- Java语言规范第四章-类型、值、变量
- Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- Java中byte类型变量做& 0xff运算的理解
- Java语言基础(类型提升&强制转换)
- Java第一课 Java的一些基本概念,Java的起源、为什么我们要学习Java语言,Java跨平台原理剖析;Java环境变量的配置,初学者常犯的问题,Java语言的基本数据类型和Java的语句。
- 08.java语言基础-整数类型(byte-short-int-long)
- 两个byte变量在参与运算时的类型提升问题
- 关于java各种类型转化为无符号和类型转化为byte数组的方法
- 不同语言的变量类型及字节长度 (C & Java)
- Java语言常量变量符号标记总结
- 在java中对byte类型的变量的运算方式
- [Java入门笔记] Java语言基础(二):常量、变量与数据类型
- java语言基础(7)——数据类型、变量的定义和使用