本文共 2880 字,大约阅读时间需要 9 分钟。
今天又学了好多芝士啊,感觉老师又帅了~
老师讲了辣么多基础知识,主要还是想让我们看懂当年让他成为枪神的wg Java当中的基本数据类型 四类 八种boolean char byte short int long float double布尔型:boolean true/false *:不允许使用数字赋值字符型:char 采用Unicode 16个位 2个字节 char c1 = 'a'; char c2 = '中'; char c3 = 97; char c4 = '\u4e2d'; //Unicode指定 char c4 = '\u56fd'; *:native2ascii -> JDK安装目录的BIN char c5 = '\t'; \t \b \r \n 字符 中 对应的ASCII码为 20013 字符 国 对应的ASCII码为 22269整数型: byte 8 short 16 int 32 * long 64 符号位+数值位 (1 - n-1) 就是1个符号位n-1个数值位 -98 = -1 – 97 = -1 – 64 – 32 – 1 = 10011110 *: 假如 我在游戏当中的攻击力是short类型存储的 数值是134 请问 它在存档文件当中 是? 128 + 4 + 2 = 00000000010000110 *: long类型定义结尾 可以加L 尽量保证大写 当数值超过2147483647的时候 必须加L浮点型:符号位 + 幂指位 + 数值位 float double 32 64 F/f D/d *:2.0-1.1 Float double 32 64 F\f D\d System.out.printIn(2.0 – 1.1);//0.899999999999999 涉及到二进制中的无限循环会舍位变精确 解决:用分做单位
float : 32 = 1[符号位] + 8[幂指位] + 23[数值位] 35.25F => float num = 35.25F; BigDecimalboolean char byte short int long float double
运算符~
+ - * / %[+ : 当+遭遇字符串的时候 不再代表算术加法 而是追加连接][* : 杀人于无形 容易数据溢出]System.out.printIn(365*24*60*60*1000); //数据溢出System.out.printIn(365L*24*60*60*1000); //数据不会溢出[/ : 整数除以整数 结果一定是整数][% : 最终结果的符号位 取决于参与运算的第一个数]+= -= *= /= %= ...[它们能够保持运算符左侧的数据类型不发生任何变化 => 隐藏式的强制类型转换]int num = 1;num += 5.5;++ -- [a.取值 b.运算 x++ = ab ++x = ba]&& || & | [逻辑运算符][ && ||逻辑短路运算符 & | 逻辑非短路运算符] if(中国战胜土耳其&&巴西战胜黎) 中国队还活着~//2003世界杯& | ^ ~ [按位运算符] & 按位与 0000110101& 1101010011 0000010001 10 27 52 12 58%2 0 1 0 0 0 类似判断单复数&1 0 1 0 0 0%4 2 3 0 0 2 //??????为啥可以这样&3 2 3 0 0 2*: %2 %4 %8 %16 ... &1 &3 &7 &15 ...| 按位与 0000110101 | 1101010011 1101110111^ 按位与 不同的为1 0000110101 ^ 1101010011 1101100110IBM 笔试题 [禁止使用第三块空间] int a = 3; int b = 5; a = a ^ b;//a = 6 110 b = a ^ b;//b = 3 011 a = a ^ b;//a = 5 101 a = a + b;//a = 8 b = a - b;//b = 3 a = a - b;//a = 5 int c = a; a = b; b = c; [禁止]>> << >>> [位移运算符]00001000001000System.out.printIn(12 + 012 + 0x12 + 0b1011);//8进制0开头 16进制0x开头 0b开头是2进制System.out.printIn(3 + 1 + ‘1’ + 5);//415System.out.printIn(1 + ‘1’ );//11System.out.printIn( 5/2*2);//4//瓷砖14块一箱子 183块System.out.printIn( 183/14 + 1);//装多少箱//以后的分页(总记录数 + 每页显示多少条 -1 ) /每页显示多少条 = 总数页数System.out.printIn( (183 + 13) / 14);// 买多少箱int x = 3;int y = x++;System.out.printIn(x);// 4System.out.printIn(y);// 3int a = 5;int b = 7;System.out.printIn(a++ + ++b + b-- - b++);System.out.printIn(5 + 8 + 8 - 7);a = 6; b = 8;System.out.printIn(a);// 6System.out.printIn(b);// 8System.out.printIn(5 % 2);// 1System.out.printIn(5 % -2);//1System.out.printIn(-5 % 2);// -1System.out.printIn(-5 % -2);// -1另外各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模。//??????a:for(){ for() break a;}
数值可以采用原码,反码,补码等不同的表示方法。
计算机一般用补码表示数值。 正整数的原码,反码,补码都相同。 负数的原码:符号位为1,其余各位表示数值的绝对值。 负数的反码:符号位为1,其余各位对原码取反 负数的补码:反码加1。 所以写一个负数的二进制(补码)就可以先写出原码,变成反码,然后变成补码。 也可以按照老师讲的把负数的二进制变成十进制:数值位取反+1