第一题:
byte b1=3,b2=4,b;b=b1+b2;eb=3+4;哪句是编译失败的呢?为什么呢? 答:b=b1+b2;e 第一个:Java运算中,比int类型小的运算会自动转为int型,但是现在b的类型是byte型,b1+b2是int型 ,int转byte发生错误 第二个:e不是合法的语句第二题:byte by = 130;有没有问题?有问题如何解决?结果是多少呢? 答: 有问题,byte类型的范围是-128~127,130超出了范围 在130前加(byte)强制转换,结果为-126第三题:byte b = 10;b++;b = b + 1;//哪句是编译失败的呢?为什么呢? 答: b=b+1;错误 b是byte型,1是int型,类型不同,无法相加4.常见的算术运算符有哪些? 答: +、—、*、/、%、++、— —(1)+运算符的作用有哪些? 一、数据运算 二、连接字符串(2)除法和取余的区别? 除法的结果为商,有余数舍去 取余的结果就是余数,不要商(3)++和--的使用规则? ++自增1,--自减1 一、 当++或--单独为一行语句时,++和--在前在后都没有差别 二、当++或--不是单独一句时,i++在内存中进行了运算,但是出现在界面中的是初始值; ++i 在内存中计算后,会把结果返回出来,返回值是计算后值( --和++情况一样 ) 例: int i=5,n; n=i++ + ++i 内存: 6 6 返回值: 5 + 6=11;5.常见的赋值运算符有哪些? 答 : =、 +=、-=、*=、/= 7.分析以下需求,并用代码实现:(1)已知一个三位数,请分别获取该三位数上每一位的数值(2)例如:123的个位、十位、百位,分别是3、2、1(3)打印格式"数字123的个位是 3, 十位是 2, 百位是 1" 答:public class CeShi{ public static void main(String[] args){ int i=123; int a=i%10; //个位数 int b=(i/10)%10; //十位数 int c=i/100; //百位数 System.out.println("个位数"+a); System.out.println("十位数"+b); System.out.println("百位数"+c); } }第八题
int型 130 转化为byte类型后的值
在计算机中130为默认的int类型的十进制数据
1.将十进制的130转化为二进制130(int)0000-0000 0000-0000 0000-0000 1000-0010 占4个字节(byte) 1000-0010 占1个字节2.在计算机中存在的形式是补码1000-0010将补码转换成原码补码 1000-0010减1得反码反码 1000-0001取反得原码原码 1111-11103.将原码转换为十进制(由于在补码中第一位是符号位,‘’1‘’ 为负数,‘’0‘’为正数)64+32+16+8+4+2=126所以 (byte)130的二进制是-126