温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在java中使用Byte类

发布时间:2021-02-22 15:14:16 来源:亿速云 阅读:567 作者:Leah 栏目:开发技术

这期内容当中小编将会给大家带来有关如何在java中使用Byte类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。

Byte类/包装类

包装类是一个常量类,可实例化 (意义:帮助对应的数据类型进行数据类型)

java数据类型包括内置数据类型和引用数据类型

内置数据类型 :含6中数字类型(四个整数型,两个浮点型),一种字符类型,还有布尔类型

byte

byte:数据类型占用1个字节=8bit,以二进制补码表示的整数

取值范围:默认值为0,最小值为-128(-2^7);最大值是127(2^7-1)

数据类型关键字内存中占用字节数取值范围默认值
布尔型boolean1true/falseFALSE
字节型byte1-128~1270
短整型short2-2^15~2^15-10
整型int4-2^31~2^31-10
长整型long8-2^63~2^63-10
字符型char20~2^16-1'\u000'
单精度浮点型float41.4013E-45~3.4028E+380.0F
双精度浮点型double84.9E-324~1.7977E+3080.0D

用途:byte类型用在大型数组中节约空间,主要代替整数,因byte变量占用内存的空间只有int类型的1/4;不足是这个数取值范围大,byte不能全部替代

如何在java中使用Byte类

常用方法

A.构造方法

public Byte(byte value)
public Byte(String s)

B.普通方法+类方法(对数据类型做转换)

piublic byte byteValue()
public short shortValue()
public int intVlaue()
public long longValue()
public float floatValue()
public double doubleValue()
public String toString()
public static String toString(byte b)

包装类和基本数据类型的对象关系

如何在java中使用Byte类

注:常量类是否可以被实例化主要看构造方法

package com.youceedu.test.wrapper; 
public class TestByte { 
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 byte a = 9;
 byte b = -7;
  String result = Byte.toString(a);
 Byte c = new Byte((byte) 9);
 System.out.println(c.floatValue()); 
 System.out.println(result+b);
 } 
}

补充:java的byte数据类型总结||二进制的原码、反码和补码

二进制的原码、反码和补码

原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

正数

首位表示符号位,原码、反码和补码都是本身。

负数

如何计算负数在计算机中的二进制(即它的补码)?

首先对负数的绝对值取反,然后+1得到负数的补码。

例如:byte a=-5

-5的绝对值=5 5的二进制表示是 0000 0101 取反得到 1111 1010 +1运算得到 1111 1011 ,那么1111 1011就是-5的补码。

也可以这样,用原码计算

例如:byte a=-5 原码表示 1000 0101

计算其反码为 1111 1010

计算其补码为 1111 1011

所以 -5在计算机中表示为1111 1011

byte

byte的取值范围为什么是-128~127

byte 表示一个字节,8bit,其中最高位是符号位。因此,最大值为 0111 1111,即127;最小值是负数为 1000 0000(规定)【其他数据类型的最大最小值也可以这样以此类推】。在计算机中二进制都是以补码的形式表示的,我们也可以这样来理解,为什么最小是-128

最小负数补码表示为:1000 0000

由补码计算原码:

1000 0000 作-1 运算 得到 0111 1111,取反 1000 0000 因为负数的补码是其绝对值取反,即10000000为最小负数的绝对值,而10000000的十进制表示是128,所以最小负数是-128

byte与ASCII

标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。

ASCII码表示的范围是0~127 刚好byte类型可以覆盖到。因此byte类型和ASCII可以互相转换。可以根据ASCII对照表进行查看http://tool.oschina.net/commons?type=4

当byte类型的变量的值实时是在''单引号里面的时候,该byte变量的值表示的是ASCII码,可以通过ASCII对照表查看其真实的数值。

比如:

public class ByteTest {
 public static void main(String args[]) {
  byte a = 'a';
  byte b = 'B';
  byte c = '4';
 
  System.out.println("a=" + a);
  System.out.println("b=" + b);
  System.out.println("c=" + c);
 }
}

输出:

a=97
b=66
c=52

byte&0xff的作用

byte->int 因为byte是8位,而int是32位,当byte类型转换为int类型的时候,会自动用符号位补足高位。例如 -5 1111 1011 转为int 类型会表示为 1111 1111 1111 1111 1111 1111 1111 1011 其表示的十进制的数值不变。

有的时候,我们只想保留二进制的补码形式,我们可以用byte&0xff。0xff是十六进制,默认是int类型,其二进制表示为 0000 0000 0000 0000 0000 0000 1111 1111 将byte类型的数值跟0xff作&操作,可以将高24位变为0,保留低8位。当然对应的十进制数也发生了变化。(相当于将byte变成无符号int类型)

例如:byte a=-5 ((int)-5)&0xff

 1111 1111 1111 1111 1111 1111 1111 1011
&
 0000 0000 0000 0000 0000 0000 1111 1111
= 0000 0000 0000 0000 0000 0000 1111 1011

int强转换为byte

例如:

int a=234 byte b=(byte)a -->得到b=-22 因为234已经超出了byte类型的表示范围,强转会直接丢弃高位,保留低8位。

int类型的234的二进制表示为:1110 1010【高24位全是0】 强转为byte类型,舍弃高24位得到1110 1010 ,第一位为符号位1,得到一个负数-22。

上述就是小编为大家分享的如何在java中使用Byte类了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI