public static void main(String[] args) {
		int a = 1;
		int b = 2;
		print(a + b);//3
		print("a+b=" + a + b);//a+b=12
		
		int i1 = 0x2f;//hexadecimal
		int i2 = 017;//octal
		int i3 = 2;//decimal
		print("i1:" + i1 + " binary:" + Integer.toBinaryString(i1));
		print("i2:" + i2 + " binary:" + Integer.toBinaryString(i2));
		print("i3:" + i3 + " binary:" + Integer.toBinaryString(i3));
		
		char c = 0xffff;//max char hex value
		byte b1 = 0x7f;//max byte hex value
		short s = 0x7fff;//max short hex value
		print("c:" + Integer.toBinaryString(c));
		print("b1:" + Integer.toBinaryString(b1));
		print("s:" + Integer.toBinaryString(s));
		
		int i4 = -1;
		print("i4:" + Integer.toBinaryString(i4));
		i4 >>>= 10;
		print("i4:" + Integer.toBinaryString(i4));
		byte b2 = -1;
		print("b2:" + Integer.toBinaryString(b2));
		print("b2:" + Integer.toBinaryString(b2>>>10));
		b2 >>>=10;
		print("b2:" + Integer.toBinaryString(b2));
		
		short s1 = -8;
		int i5 = s1;
		print("s1:" + s1 + "\ni5:" + i5);
		print("s1:" + Integer.toBinaryString(s1>>3) + "\ni5:" + Integer.toBinaryString(i5));
		
		byte b3 = 127;
		byte b4 = -128;
		byte b5 = -1;
		print("b3:" + (int)b3);
		print("b4:" + (int)b4);
		print("b5:" + (int)b5);
		print("b3&0xff:" + (b3 & 0xff));//127
		print("b4&0xff:" + (b4 & 0xff));//128
		print("b5&0xff:" + (b5 & 0xff));//255
		
		//byte to int
		byte[] bs = new byte[]{127,-128,-1};
		for(int i = 0, n = bs.length; i < n; i ++){
			short read = (short) (bs[i] & 0xff);
			print("Read:" + read);
		}
		
		byte b6 = (byte) 129;
		print("b6:" + b6);
		
	}