1.将按位运算操作,尤其是左移和右移(有无符号)整理到自己的博客中。
重点说明清晰负数的运算过程。
答:java中对于字节的移位操作按方向分为左移和右移,其中对于右移动操作又分为有符号右移和无符号右移.
1.有符号右移:将二进制向右移动 如果原来符号位为0 则新符号位也用0 否则用1;
2.无符号右移:将二进制向右移动 不管原来的符号位是0还是1 一律用0 补位;
此外对于数值的移位操作,每向右移动一位表示除二,向左移动一位表示乘二.
2.byte数到十六进制字符串表现形式程序设计原理和实现方式整理到博客中。
public class Main {/**
* byte类型用十六进制表示
* @param args
*/
public static void main(String[] args) {
char[] chars = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int i =3;
StringBuffer buffer = new StringBuffer();
byte b = 100;
buffer.append(chars[(b>>4) & 0x0F]);
buffer.append(chars[b & 0x0F]);
System.out.println(buffer);
}
}
3.定义函数,计算一位整型数组所有元素的和。
public class Main {/** * byte类型用十六进制表示 * @param args */public static void main(String[] args) {int sum =0 ;int[] n = new int[10];for(int i =0 ;i< 10;i++){n[i] = i;}for(int j = 0;j<10 ;j++){sum+=n[j];}System.out.println("该一维数组的和为:"+sum);}}
4.数组的拷贝
package homework;public class Main {public static void main(String[] args) {int[] array1 = new int[10];int[] array2 = new int[10];//初始化数组for(int i = 0;i<array1.length;i++){array1[i] = i;}array2=arrayCopy(array1,array2);System.out.println("拷贝后的数组array2为:");for(int i:array2){System.out.print(i);}}//数组拷贝public static int[] arrayCopy(int[] array1,int[]array2){for(int i = 0;i<array1.length;i++){array2[i] = array1[i];}return array2;}}