我的这些都答安不确定,希望高手参加讨论,这些都是我的想法,有对有错:P
Q1:UniCode 指的是16-bits coding,其中UCS-2 和UTF-8都是unicode,而他们都是ASCII的extension,楼主所说表达方法,是什么意思?在JAVA里,我们用的不是16进制eg char c = 0x0061;(UCS2) 如果print出来,System.out.println(c);就是a.那么并不是用8进制书写.
Q2:int i = 50;转化成Binary 50 = 0011 0010 而int是 32 bits(8 byte)singed number
同理char c = 'A'; 转化成bianry 是0100 0001 如果把这两个数相加,得到115正是这两个binary number相加的decimal结果,如果要测试这个结果是什么类型,我分别用Byte short char 来存这个结果i.e Byte b = i+c; Short s = i+c; Char q = i+c;最后compile都发现loss of presicion,而int k = i+c;却没有error这说明,得到的结果是int.
Q3:no idea
Q4:no idea
Q5: 有三种表示正负的方法,他们分别是(1) sign and magnitude,(2)ones complement,(3) twos complement. 举个例子-5, 先把5转化成binary, 5 = 0101 ,用第一种方法,-5 = 1101即把the most significant bit 换一下(0表示正数,1表示负数)第二种方法把所有的bit都换 i.e -5 = 1010,第三种方法就是第二种的改进,在第二种的基础上加1,then -5 = 1010+1=1011,现在的电脑一般用的是第三种方法(twos complement),而在表示 IEEE 754 Floating point number 却多用第一种(sign and magnitude)
Q6 Complie的时候不会有error但是当你运行的时候就会出现arithmetic Exception 了try it :P
Q7 no idea
Q8 不是很明白什么意思,但是true 和false是boolean value, 就是说只有两个true or false,而biany 却有一个值,我们用bit operator比较给出一个值,例如&(AND) | (OR) ^ (EOR)它们是bit operator,和&& ||是不同的 比如说11111111&0000000(mask) 给出的是一个值0000000 rather than一个boolean value.我是这样理解的..
Q9 或许是16进制的运算?
还有,你的问题一点也不菜,好难:((