码迷,mamicode.com
首页 > 编程语言 > 详细

Java中用反码表示整数,及int到byte的转换

时间:2016-08-11 19:17:45      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

Java中的整数都是通过补码表示的,当整数为正数时,补码和原码相同,当整数为负数时,补码为原码按位取反(符号位除外),然后加1.

通过一些例子可以比较明显的看出:

int a = -1;
System.out.println(Integer.toBinaryString(a));
//output:
11111111111111111111111111111111
int a = -128;
System.out.println(Integer.toBinaryString(a));
//output:
11111111111111111111111110000000

在将int通过(byte)方式转换为byte类型时,截取最后一个字节。

所以byte的值由int最后一个字节决定,最后一个字节的第一位变为符号位,所以byte的值在127和-128之间。

int a = 128122;
System.out.println(Integer.toBinaryString(a));
byte b = (byte) a;
System.out.println(b);
//output:
11111010001111010
122
int a = 127;
System.out.println(Integer.toBinaryString(a));
byte b = (byte) a;
System.out.println(b);
//output:
1111111
127
int a = 128;
System.out.println(Integer.toBinaryString(a));
byte b = (byte) a;
System.out.println(b);
//output:
10000000
-128

 

Java中用反码表示整数,及int到byte的转换

标签:

原文地址:http://www.cnblogs.com/YLsY/p/5761979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!