类型转换-经过强制类型转换以后,变量a, b的值分别为( )short a = 128; byte b = (byte) a

本文深入解析Java中byte与short类型强制转换原理,通过补码、反码和原码的概念,阐述了如何处理超出byte范围的short类型数值。详细步骤包括确定数值的正负,转换为补码形式,并解释了在内存中如何表示和处理这些数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:经过强制类型转换以后,变量a, b的值分别为( )short a = 128; byte b = (byte) a
1、java中用补码形式表示
2、第一位正负位,1表示负,0表示正
3、原码:一个数的二进制表示
3的原码:0000 0011 -3的原码:1000 0011
4、反码:正数原码本身。负数原码按位取反(符号位不变)
3的反码:0000 0011 -3的反码:1111 1100
5、补码:正数原码本身。负数反码加1
3的补码:0000 0011 -3的补码:1111 1101

已知负数的补码,求负数:
	补码-1=反码,反码按位取反
已知负数,求负数的补码	
	负数原码除了符号位,按位取反

byte在内存中占一个字节,8位,范围是[-128,127]
short在内存中占四个字节,32位

强制转换时,byte是8位,截取a的后8位,1000 0000,此时最高位是1说明是负数(第一位正负位,1表示负,0表示正)
补码 :1000 0000
反码: 1000 0000 -1 = 0111 1111
原码: 1000 0000 -128

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值