1.以最有效的方式计算2乘以8的结果
package anli;
public class a01 {
public static void main(String[] args) {
System.out.println(2<<3);
}
}
左移(shl) 和 右移(shr) 运算符是向一个方向按位移动,空出来的用 0填齐。对于整数来说,左移n位,就相当于乘以 2的 n次方;
2、对两个整型变量进行互换(不需要第三个变量)
package anli;
public class a02 {
public static void main(String[] args) {
int a = 3, b = 4;
a = a + b;
b = a - b;
a = a - b;
System.out.println(a);
System.out.println(b);
}
}
3、有三个整数,获取最大值,通过三元运算符完成
package anli;
public class a04 {
public static void main(String[] args) {
int a = 30;
int c[] = new int[100];
int i = 0;
int aa = a;
while (aa != 0) {
c[i] = aa & 15;
aa = aa >> 4;
i++;
}
String result = "";
System.out.print("此十进制正整数转化为十六进制的数后为:");
for (i = i - 1; i >= 0; i--) {
if (c[i] > 9) {
char cx = (char) (c[i] - 10 + 'a');
result = result + cx;
} else {
result = result + c[i];
}
}
//直接使用函数进行转换
System.out.println(Integer.toHexString(a));
System.out.println("0x" + result);
}
}
思考拓展
将十进制转换成二进制和八进制、十六进制
package anli;
public class a05 {
public static void main(String[] args) {
System.out.println("本程序目的:将十进制数转换成十六进制数");
int a = 30, i = 0;
int aa = a;
int c[] = new int[30];
while (aa != 0) {
c[i] = aa & 15;
aa = aa >> 4;
i++;
}
String result = "";
for (i = i - 1; i >= 0; i--) {
if (c[i] > 9) {
char cx = (char) (c[i] - 10 + 'a');
result += cx;
} else
result += c[i];
}
System.out.println(result);
System.out.println("本程序目的,将十进制数转换成八进制数");
int a2 = 16;
aa = a2;
int c2[] = new int[30];
i = 0;
result = "";
while (aa != 0) {
c2[i] = aa & 7;
aa = aa >> 3;
i++;
}
for (i = i - 1; i >= 0; i--) {
result += c2[i];
}
System.out.println(result);
System.out.println("本程序目的,将十进制数转换成二进制数");
int a3 = 8;
aa = a3;
int c3[] = new int[30];
i = 0;
result = "";
while (aa != 0) {
c3[i] = aa & 1;
aa = aa >> 1;
i++;
}
for (i = i - 1; i >= 0; i--) {
result += c3[i];
}
System.out.println(result);
}
}