大前提:目前来说所有数据在内存当中都是以补码的形式存在。
基础知识学习:
1.关于byte类型取值范围分析
在java当中byte类型只占一个字节,一个字节等于8位,其中最高位表示符号位0代表正数,1代表负数,
因此正数最大可以表示的正数为0111 1111(2)转化为10进制为127。正数最小可以表示0000 0000(2)
也就是0。
因为最高为代表符号位因此就出现了0000 0java 基础数据类型取值范围000(2)和1000 0000(2)也就是+0和-0,我们默认0
就是代表+0,没有-0这一说法,因此多出了1000 0000(2),1111 1111代表-127,1000 0000代表
-1,也就是从-1到-127都有数表示了,因此我们规定1000 0000(2)代表-128。
由上面分析我们可以确认byte的取值范围为[-128,127]。
2.关于int类型的取值范围分析
在java当中int类型占用4个字节,一个字节等于8位,所以总共32位,正数从0开始,负数从-1开始,
因此取值范围为:[-2^31, 2^31 - 1];
3.进入正题,int转换为byte类型过程
例子1:int类型1转换为byte类型
例子2:int类型128转换为byte类型
例子3:int类型129转换为byte类型
例子4:int类型-128转换为byte类型
例子5:int类型-129转换为byte类型
4.关于n进制的数左移
一个n进制的数N左移m位后得到的数为:N * n^m
例如
十进制的4左移1位,4 * 10^1 = 40
二进制的4左移3位,也就是等于4 * 2^3 = 32
100<<3 变为 转为2进制为32
5.关于n进制的数右移
一个n进制的数N右移m位后得到的数为:N / (n^m)
例如
十进制的4右移1为,4/10 = 0
二进制的16右移3位,也就是等于16/(2^3) = 2
10000>>3 变为 10转为2进制为2
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/24591.html