[java 基础知识] byte int 互转

简介: [java 基础知识] byte int 互转

java中byte int 是有符号的,在计算机系统中,数值一律用补码来表示(存储)

  • java 中 int占4个字节
  • java 中 byte占1个字节
  • 补码知识:
  • 正数的原码=反码=补码
  • 负数的补码 = 反码 + 1 (反码 = 原码按位取反,除了符号位)

题目1

将byte数值-127 转为无符号 int值

byte类型的 -127

⇒ 1111 1111 (原码)

⇒ 1000 0000 (反码)

⇒ 1000 0001 (补码)

因为Java的int类型占4个字节

byte 转 int 的时候 ,高位补符号位 ,也就是 1

在机器中表示为 1111 1111 1111 1111 1111 1111 1000 0001

byte a = (byte) -127;

⇒ 原码 1000 0000 0000 0000 0000 0000 0111 1111 (-127)

怎么确保扩展时补0 呢?

int b = a & 0xff
//
//0000 0000 0000 0000 0000 0000 1111 1111  ==> 0xFF 高24位都是0
& 1111 1111 1111 1111 1111 1111 1000 0001  ==> -127 int 形式
//0000 0000 0000 0000 0000 0000 1000 0001  
达到低位不变高位补0的效果  补0扩展
//

0000 0000 0000 0000 0000 0000 1000 0001 是正数 所以就是原码

所以,byte类型的 -127 转为 无符号int 就是129

题目2

将int数值129 转为byte值

int 转 byte

byte c = (byte) 129;

⇒ 129 (int类型4个字节)正数补码 = 原码

0000 0000 0000 0000 0000 0000 1000 0001

⇒ 转byte (只保留1个字节)

1000 0001

⇒ 转 原码 (先-1 再取反)

1111 1111

也就是 -127

目录
相关文章
|
1天前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`"123abc"`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
26天前
|
Java 调度 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第29天】 在现代软件开发中,多线程编程是一个不可忽视的领域。特别是在Java这种广泛使用的编程语言中,掌握多线程的概念和技术对于开发高效、响应迅速的应用程序至关重要。本文将深入探讨Java多线程的核心概念、实现机制以及常见问题的解决方案。我们将从基础出发,逐步揭示如何通过多线程提升程序性能,并且讨论并发编程中的挑战和解决策略。文章的目的是为开发者提供一个清晰的多线程编程指南,帮助他们在实际项目中有效地应用这些知识。
20 3
|
25天前
|
监控 IDE Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第30天】 在现代软件开发中,多线程编程是提高应用程序性能和响应能力的关键。特别是在Java这样的多平台、多用途的编程语言中,掌握多线程技术至关重要。本文旨在为读者提供有关Java多线程编程的全面介绍,从基本概念到高级应用技巧,帮助初学者和有经验的开发者理解并有效使用多线程。文章不仅涉及基础理论,还包括代码示例和最佳实践,确保读者能够将知识应用于实际项目中。
|
29天前
|
Java 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第26天】 在现代计算机科学中,多线程编程是一个复杂且强大的概念。Java作为一种广泛使用的编程语言,其对多线程的支持使得开发者能够创建出更为复杂、高效和响应迅速的应用程序。本文将深入探讨Java中的多线程编程,从基础概念到实际编程技巧,为读者提供全面的理解和实践指导。
|
27天前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第28天】 在现代计算机科学中,多线程编程是一个重要的概念,它允许程序同时执行多个任务。在Java中,多线程编程是通过创建并管理线程来实现的。本文将介绍Java中多线程编程的基础知识,包括线程的概念、创建和控制线程的方法,以及线程同步和通信的相关技术。通过阅读本文,读者将对Java中的多线程编程有一个全面的了解,并能在实际编程中应用这些知识。
|
30天前
|
安全 Java 数据安全/隐私保护
Java中的多线程编程:基础知识与实践
【5月更文挑战第24天】 在现代软件开发中,多线程编程是提升应用性能和响应速度的关键技术之一。Java 作为一种广泛使用的编程语言,其内置的多线程功能为开发者提供了强大的并发处理能力。本文将深入探讨 Java 多线程的基础概念、实现机制以及在实际开发中的应用。我们将从线程的创建和管理出发,逐步讲解同步机制、死锁问题以及如何利用高级并发工具有效地构建稳定、高效的多线程应用。通过理论结合实例的方式,旨在帮助读者掌握 Java 多线程编程的核心技能,并在实际项目中灵活运用。
|
1月前
|
缓存 安全 Java
Java的Integer和int有什么区别?
Java的Integer和int有什么区别?
17 1
|
1月前
|
安全 Java
Java基础知识面试总结(全面,实时更新)
Java基础知识面试总结(全面,实时更新)
|
1月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第19天】多线程编程是Java中的一个重要概念,它允许程序员在同一时间执行多个任务。本文将介绍Java多线程的基础知识,包括线程的创建、启动和管理,以及如何通过多线程提高程序的性能和响应性。
|
18天前
|
Java API 计算机视觉
Java数字图像处理基础知识 - 必读
Java数字图像处理基础知识 - 必读
10 0