Java暑期学习Day04
第四天啦,希望能坚持下去{:10_298:}①位运算的左移(<<)
如127 (十进制)——补码和原码一样:0111 1111(二进制)
(正整数的补码等于其原码;
负整数求原码是其取反后加一<符号位不变>)
<a. 十进制整数转换为二进制整数:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
b.十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。
具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
c.已知一个数的补码,求原码的操作其实就是对该补码再求补码:
⑴如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
⑵如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。>
<< : 左移运算符,num << 1,相当于num乘以2,num << 2,相当于num乘以2再乘以2
>> : 右移运算符,num >> 1,相当于num除以2,num >> 2,相当于num除以2再除以2
public class D170708 {
public static void main(String[] args) {
int i = 127;
int number = 1;
int b = i >> number;
System.out.println(b);// 63
int a = -127;
int number2 = 1;
int c = a >> number2;
System.out.println(c);// -64
}
}
②将++或--运算符写在变量前,表示先将变量值加或减1,然后再返回变量值;
后, 先返回变量值 ,然后再对变量加或减1
<font size="4">public class D170708 {
public static void main(String[] args) {
int i=0;
i++;
System.out.println(i);//1
i--;
System.out.println(i);//0
++i;
System.out.println(i);//1
--i;
System.out.println(i);//0
int number=0;
number=++i;
System.out.println(number);//1 相当于i=i+1; number=i
number=--i;
System.out.println(number);//0
number=i++;
System.out.println(number);//0 相当于number=i; i=i+1
number=i--;
System.out.println(number);//1 相当于number=i;i=i-1
}
}</font>
③指定运算: &= —— a&=b—— a=a&b
(求与,同为真1为1,同为0为0,不同为0)
>>= —— a>>=b —— a=a>>b
④类型转换:在浮点数后加一个F,表示float类型;<若不加,系统默认double类型>
在整数后加一个L,表示long类型;<若不加,系统默认int类型>{:10_254:}
<div><font size="4"><b>public class D170708 {</b></font></div><div><font size="4"><b> public static void main(String[] args) {
System.out.println("Integer.MAX_VAlUE=" + Integer.MAX_VALUE);//<font color="red">Integer.MAX_VAlUE=2147483647
</font>System.out.println("Integer.MIN_VAlUE=" + Integer.MIN_VALUE);//<font color="red">Integer.MIN_VAlUE=-2147483648</font>
int i = 2147483647;
i++;
System.out.println(i);// <font color="red">-2147483648
</font>i--;
System.out.println(i);//<font color="red"> 2147483647</font></b></font></div><div><font size="4"><b>int a=-2147483648;
a--;
System.out.println(a);//<font color="red">2147483647</font>
a++;
System.out.println(a);//<font color="red">-2147483648</font></b></font></div><div><b><font size="4">
</font></b></div>
⑤ 1.switch语法架构:
switch(变量或表达式){
case整数、字符、字符串或Enum(枚举):
描述句;
break;
case整数、字符、字符串或Enum:
描述句;
break;
...
default(不一定需要):
描述句;
}
2.for(初始值;执行结果必须是boolean的重复式;重复式){
描述句;
}
<初始式只执行一次>
<font size="4">public class D170708 {
public static void main(String[] args) {
/*
* 求1000以内的素数 质数(prime number)又称素数,有无限个。
* 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。
*/
int s = 0;
for (int i = 2; i <= 1000; i++) {
int g = 1;
for (int j = 2;<b> </b><font color="red"><b>j < i</b></font>; j++) {
if (<b><font color="red">i % j == 0</font></b>) {
g = 0;
<font color="red"><b> break;
</b></font> }
}
if (g == 1) {
System.out.print(i + <b>"\n"</b>);
<font color="red"><b> s++;</b></font>
}
}
}
}</font>
3. while(条件式){
描述句;
} //前测试循环
do{
描述句;}while(条件式);
⑥ break:结束类似于switch、for、while、do...while的区块、并执行区块后一个描述句
continue:只略过之后描述句,并回到循环区块开头进行下一次循环
支持马太效应{:9_240:}
这名字怎么怪怪的{:10_266:} 零度非安全 发表于 2017-7-9 00:09
支持马太效应
这名字怎么怪怪的
这是一种社会心理现象{:10_298:}
之前看一个例子说一个人被人夸奖后专注坚持于一个领域,然后取得了长期优秀的成绩{:10_282:}
借此名希望我能坚持下去!{:10_297:} <div><font size="5">public class D170709 {
public static void main(String[] args) {
/*
* 求1000以内的素数 质数(prime number),有无限个。
* 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
*/</font></div><div><font size="5">for (int i = 2; i <= 1000; i++) {
int g = 1;</font></div><div><font size="5"> for (int j = 2; j < i; j++) {</font></div><div><font size="5"> if (i % j == 0) {
g = 0;
break;
}</font></div><div><font size="5"> }</font></div><div><font size="5"> if (g == 1) {
System.out.print(i + "\n");</font></div><div><font size="5"> }</font></div><div><font size="5">}</font></div><div><font size="5"> }</font></div><div><font size="5">}
</font>
</div>
我发现可以不用多加一个变量就可以求取1000以内的素数{:10_298:} public class D170709 {
public static void main(String[] args) {
/*
* 求1000以内的素数 质数(prime number),有无限个。
* 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
*/
for (int i = 2; i <= 1000; i++) {
int g = 1;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
g = 0;
break;
}
}
if (g == 1) {
System.out.print(i + "\n");
}
}
}
}
补充九九乘法表,又一个for的嵌套循环,希望我能彻底掌握嵌套循环。{:10_282:}
public class D170709 {
public static void main(String[] args) {
for (int j = 1; j < 10; j++) {
for (int i = 2; i < 10; i++) {
System.out.printf("%2d*%2d=%2d", i, j, i * j);
}
System.out.println();
}
}
}
print:方法必须有参数;不能直接换行 printf: 格式化输出(有参数) println:方法可以没有参数;可以实现换行
页:
[1]