第一题:
byte b1=3,b2=4,b;
b=b1+b2;e
b=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-1110
3.将原码转换为十进制(由于在补码中第一位是符号位,‘’1‘’ 为负数,‘’0‘’为正数)
64+32+16+8+4+2=126
所以 (byte)130的二进制是-126