一 基本数据类类型
boolean
byte
char
short
int long float
double
1 整数类型
包括三种:short int long
表示:数学意义上的整数。
三种类型支持的整数长度不同
short:支持的16未有符号
int:支持的32位有符号
long:支持的64位有符号
基础知识点:二进制、原码、反码、补码
二进制:及其只能识别高电位和低电位 1 0 n进制就是逢n进位
对于正数来说:二进制码就是原码、反码、补码
对于负数来说:二进制码是原码(对应的正数的符号位取1)
反码:原码的符号为不变,其余取反
补码:反码+1
在计算机中,所有的数据都是使用补码形式来进行存储
所有的计算也都是按照补码形式来进行
-1+3在计算机中如何计算?
步骤:1 先找操作数的补码 2 使用补码进行计算 3 计算的结果依然是补码 4 再将补码变回原码
假定使用四位机可以支持的计算:-7
3的补码,原码0011------------------补码0011
0010—补码—原码2
写出计算机计算1+(-3)的过程
1,原码0001----------------补码0001
-3,原码1011–反码1100–补码1101
0001 + 1101 = 1110
补码:1110 反码1101 原码1010 (-2)
原码—补码:先取反码,反码+1
补码—原码:先-1,取这个码的反码
补码—原码:先取反码,反码+1
1:0001
-3:1011—反码1100–补码1101
1110
1001+1=1010
写出计算机计算(-3)+(-5)的过程
-3 原码10000011–反码11111100–补码11111101
-5 原码10000101–反码11111010–补码11111011
补码 11111101 + 11111011 = 11111000
补码反码 10000111
补码反码+1 10001000(-8)
二进制:100100 = 36
八进制:100105 = 315392
36二进制100100
0八进制前缀 0b二进制前缀 0x十六进制前缀
1.Java中的数据类型有哪些?
答:Java中的数据类型分为两大类:基本数据类型和引用类型。
基本类型(内置数据类型):byte short int long float double boolean char
引用类型:String StringBuffer等
基本类型的存储:变量名作为内存的名字,数据域中存储是真正的基本数据类型的值。
引用类型的存储:变量名作为内存名字,数据域中真正存储的是,对象在堆内存中的地址。
2.将十进制的17转换成2进制,8进制和16进制,使用手工计算,并使用数值的方法验证。
2进制:10001
验证:1*2^0+1*2^4=17
验证:1*8^0+2*8^1=17
验证:1*16^0+1*16^1=17
3.将二进制100110101转换成10进制,8进制和16进制,使用手工计算,并使用数值方法验证。
10进制:
1*2^0+1*2^2+1*2^4+1*2^5+1*2^8=309
2进制:100 110 101
101 = 5
110 = 6
100 = 4
8进制:465
验证:5*8^0+6*8^1+4*8^2=309
2进制:1 0011 0101
0101 = 5
0011 = 3
0001 = 1
16进制:135
验证:5*16^0+3*16^1+1*16^2=309
4.手工计算-27的二进制原码、反码、补码,进行跟1进行相加。
原码:1001 1011
反码:1110 0100
补码:1110 0101
1110 0101 + 0000 0001 = 1110 0110
补码:1110 0110
补码的反码:1001 1001
补码的反码+1:1001 1010(-26)
5.定义一个字符串s=" hello,world,"
(1) 去掉字符串两的空格
(2)截取hello
(3)去掉字符串最后的逗号
(4)将(3)结果中的逗号替换成-
package day3;
public class day3_homework1 {
public static void main(String[] args) {
String s = " hello,world,";
System.out.println(s.trim());
System.out.println(s.substring(4,9));
String s1 = s.substring(4,s.length()-1);
System.out.println(s1);
String s2 = s1.replace(",","-");
System.out.println(s2);
}
}
//Math.pow(2,3) 2的3次方
System.out.println(Math.pow(2,3)); //8.0
//Integer.toHexString(32837) Hex(16进制数)求32837的16进制
System.out.println(Integer.toHexString(32837)); //8045
//Integer.toBinaryString(6) Binary(2进制数) 求6的2进制
System.out.println(Integer.toBinaryString(6)); //110
//Integer.toOctalString(9) Octal (8进制数) 求9的8进制
System.out.println(Integer.toOctalString(9)); //11
//不要拿浮点数来比较
System.out.println(0.1+0.2==0.3); //false
//把123转换成字符串
String s=123+"";
String s=String.valueOf(123);
//如果只有一个参数,则代表起始位置,截取的时候,会从起始位置一直截取到字符串结束位置。
System.out.println(str.substring(3));
//如果有两个参数,则一个代表起始位置,一个代表终止位置(不包含结束位置)
System.out.println(str.substring(1, 3));
//字符串连接
System.out.println(str.concat(" world"));
//转换大小写
System.out.println(str.toLowerCase());
System.out.println(str.toUpperCase());
sc.next().toLowerCase().equals("exit");
//charAt(索引)返回指定索引位置的字符,索引是从0开始,从左到右。
System.out.println(s7.charAt(0));
//判断字符串头尾字符是否相同
System.out.println(s7.charAt(0)==s7.charAt(s7.length()-1));
//indexOf(子串或者是某个单个字符)返回子串或者某个字符串在原字符串中首次出现的 位置 lastIndexOf(子串或者某个单个字符)在java中,-1代表没有找到
String s8="hello";
System.out.println(s8.indexOf("l"));
System.out.println(s8.lastIndexOf("l"));
System.out.println(s8.indexOf("he"));
// 9.字符串替换(易错的方法)
// replace(old子串,new子串)-----返回值是替换之后的字符串
// 会新创建字符串,存储替换之后的字符
// 原字符串没有被修改
String s9="hello";
s9.replace("e", "z");
// s9.replace("e", "z");
System.out.println(s9.replace("e", "z"));
s9=s9.replace("e", "z");
System.out.println(s9);
// 10.trim去掉两端的空格
// 新创建字符串存储的结果。不是在原来的字符串上进行修改。
String s10=" 篮球、排球、足球 ";
System.out.println(s10.trim());
System.out.println(s10);