package main.java.binarytransfer;

/*
	�����⣺
		byte b = 130;��û������?
		��������⣬������ô���?
		�����Ľ����ʲô?
		Ϊʲô����������ʽ��?
*/
class Demo01 
{
	public static void main(String[] args) 
	{
		//byte -- -128~127	
		//����������������������	
		//���ǿ���ͨ�����ݸ�ֵ��short,int,long��������⡣
		//���ǣ����ǲ�������������ֻ�����ݸ�ֵ��byte���͡�
		//�������ת��
		//�Ӵ�С����ռ�õ��ֽ��������������ܱ�ʾ�Ĵ�
		//��С������ռ�õ��ֽ��������������ܱ�ʾ��С��
		//һ������Ĭ����int���͡�
		//Ҳ����˵���130��300��ʵ��int���͵�
		//��ô���������ǰ�int���͸�ֵ��byte���ͣ�
		//Ҳ���ǴӴ�С�ĸ�ֵ�����ʱ�򣬿��ܻ��������
		//��Ϊ����4���ֽڵ���ݣ�����ֻ��1����
		//�����ʹ������������͵ķ�ʽ����ô�� ���Ǿ�ֻ��ʹ��ǿ��ת����
		//ǿ������ת����Ӧ�ó�����
		//�ڰ�һ�����������͵�ֵ��ֵ��С��������͵�ʱ����Ҫʹ��ǿ������ת����
		//ʹ�ø�ʽ�ǣ�
		//������� ���� = (�������)ֵ;

		byte b1 = (byte)130;//������������
		byte b2 = (byte)300;//������������
		System.out.println(b1);//-126
		System.out.println(b2);//44

		//�������ǽ����������⣬���ʴ���Ƿ񶼿�������������?
		
	}
}
/*

���⣺Ϊʲôbyte b1 = (byte)130;�����-126��?

˼����
	A:130������Ĭ����int���͵ġ�
	B:�ڲ��������ʱ�򣬵ñ�ɲ����ʾ��
	C:�ҵ�130�Ĳ��롣ͨ��۲���ݣ�����֪��130��һ������
	D:�����ԭ�룬���룬���붼��ͬ����������ֻҪд����130��ԭ���֪�����롣
	E:д��130��ԭ�롣���ԭ����ʵ������Ķ����Ʊ�ʾ��
		ʮ���Ƶ�130	--	�����������
		
		ʮ���Ƶ������ƣ���ʮ���Ƶ���ݳ���2��ֱ����Ϊ0������ת��
	F:8421��?
		8��bitλ�����
		
		1	1	1	1	1	1	1	1
		128	64	32	16	8	4	2	1	

		1       0	0	0	0	0	1	0
	Ҳ����130�Ķ����ƣ�
		00000000 00000000 00000000 10000010
	G:���������ǰ�130��ǿ��ת��Ϊ��byte���ͣ���ô�����ʱ�򣬾ͳ������ˡ�
          byte����ռ��1���ֽڡ������ǵ�130����ռ�õ���4���ֽڡ�
	  ���ԣ���ǿ��ת���Ĺ���У������ֽ���ݵĶ�ʧ��
	  ���ǣ����ǲ��ô�����
	  ֱ�Ӱ������ǵĽ��������
		00000000 00000000 00000000 10000010
	  ǿ��ת��Ϊbyte���ͺ����ǵĽ�����
		10000010
	H:���ʱ�����ǿ�����10000010��������Ӧ���ǲ�����ʽ���ڵġ�
	  ��������ͨ����ʾ��������Ӧ����ԭ�롣
          �����λ��1Ҳ͸¶���������ʵ��һ������
	  ��ô�� ���Ǿ�Ӧ�ð��ողŽ����ԭ�룬���룬����Ĺ���
	  �Ƴ���������ԭ���ʾ��
	
	  ���룺1 0000010
	  ���룺1 0000001
	  ԭ�룺1 1111110 
        I:�������ǵ����ֵ�ǣ�1 1111110 
	  ������ͨ�����̨��������ʮ������ݣ����ԣ����ǻ�Ҫ�ѸĶ�����ת��Ϊʮ���ơ�
		1 1111110
		���λ�Ƿ��λ�����ԣ�����Ľ����һ������
		
		128	64	32	16	8	4	2	1
		���λ	1	1	1	1	1	1	0
		-	64+32+16+8+4+2	
		-126

���⣺
	Ϊʲôbyte b2 = (byte)300 �����44��?
	
	��һ������300�Ķ�����д������	
		1	1	1	1	1	1	1	1	1
		256	128	64	32	16	8	4	2	1
		
		1	0	0	1	0	1	1	0	0
		
		300�Ķ����ƣ�
			00000000 00000000 00000001 00101100		
	�ڶ�����������ݵĴ洢�Ͳ������ǲ�����ʽ��
		��ȡ���300��
		
		�õ���00101100
		�õ�����һ�����룬�����Ƿ������λ��0,˵����һ���������ԣ����������ʵҲ����ԭ�롣
		���ԣ�����ֱ�ӻ�ȡ��ֵ���ɡ�

		128	64	32	16	8	4	2	1
		���λ	0	1	0	1	1	0	0
		+	32+8+4
		+44

byte 
	-128	-	127

	byte b = 127;
	byte b = (byte)128;//-128
	byte b = (byte)129;//-127
	byte b = (byte)130;//-126
*/


