JavaDay01:二进制
一:二进制,八进制,十六进制
01.二进制的由来:
02.二进制和八进制:转换关系
03.二进制和十六进制的关系:
04.十进制转二进制:
05.十进制转十六进制:
06.二进制,十六进制转十进制:
07.8421法则:
08.负数表示形式
|
符号位 |
数值位 |
+7 |
0 |
000 0111 |
-7 |
1 |
000 0111 |
负数的表示形式:负数对应的正数符号位变1,负数的反码:除了符号位,所有 位取反(0变1,1变0) |
|
|
-7的补码: -7 1 111 1000 除了符号位,所有位取反 |
|
|
-7的补码:-7 1 111 1001 在反码基础上+1 |
|
|
总结: |
|
|
求一个负数的补码的过程: |
|
|
1.先求对应正数的原码(正数的原码,反码,补码都一样) |
|
|
2.把正数的原码符号位变1(负数的原码) |
|
|
3.把负数的原码除了符号位之外,取反(负数的反码) |
|
|
4.在反码基础上+1 (负数的补码) |
|
|
总结规律: |
|
|
+7 0000 0111 |
|
|
-7 1111 1001 |
|
|
+12 0000 1100 |
|
|
-12 1111 0100 |
|
|
二:常用的DOS命令disk
|
命令 |
解释 |
1 |
dir |
列出当前目录下的文件以及文件夹 |
2 |
md |
mkdir创建目录 |
3 |
rd |
删除空目录 |
4 |
cd |
chdir切换目录,进入目录 |
5 |
cd .. |
退回到上一级目录 |
6 |
cd \ |
退回到根目录 |
7 |
del |
删除文件 |
8 |
exit |
退出dos命令行 |
三:流程语句
01.顺序结构
如果代码里没有流程控制,程序是按照书写格式从上而下一行一行执行的,一条语句执行之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束。
02.选择结构
if语句使用boolean 表达式或boolean 值作为选择条件,有三种结构形式:
if(boolean表达式){
条件执行体
}
if(boolean表达式){条件执行体A}
else{
条件执行体B
}
if(boolean表达式){条件执行体A}
else if{
条件执行体B
}else{
条件执行体C
}
int weekday=3;
switch(weekday){
case 1:System.out.println("1");break;
case 2:System.out.println("1");break;
case 3:System.out.println("1");break;
case 4:System.out.println("1");break;
case 5:System.out.println("1");break;
case 6:System.out.println("1");break;
case 7:System.out.println("1");break;
default:System.out.println("没有这一天");
}
|
关键字名称 |
解释 |
1 |
break |
终止当前所在的循环break之后的语句执行不了 |
2 |
continue |
继续的意思,跳过当前的循环,进入下一次循环操作 |
3 |
return |
表示结束循环所在的方法,方法都接受了,循环结构自然就结束。 |
03.循环结构
1.while循环
[初始化部分]
while(条件表达式){
循环体语句;
[循环变量控制语句]
}
1-100偶数之和
int sum = 0;
int i = 1;
while(i<=100){
if(i % 2 == 0){
sum += i;
}
i++;
}
//打印结果
System.out.println("偶数之和是: " + sum);
案例二
已知珠穆朗玛峰的高度是:8848米,假设有一张足够大的纸,厚度是0.01米,
请问:这张纸折叠多少次可以保证厚度不低于珠穆朗玛峰的高度?
int count = 0;
double high = 0.01;
/*
while(high <= 8848){
high = high * 2;
count++;
//打印详细信息
System.out.println("当前纸的厚度是: " + high + "折叠的次数是: " + count);
}
*/
while(true){
if(high >= 8848){
//跳出循环
break;
}else{
high = high * 2;
count++;
}
}
System.out.println("折叠的次数是: " + count);
2.do while循环
/*
[初始化部分]
do {
循环体语句;
[循环变量控制语句]
} while(条件表达式);
*/
int sum = 0;
int i = 1;
do{
sum += i;
i++;
}while(i<=100);
System.out.println(sum);
案例一
int i=10000;
int count=0;
do{
int wan = i / 10000;
int qian = i / 1000 % 10;
int shi = i / 10 % 10;
int ge = i % 10;
//判断
if(wan == ge && qian == shi){
count = count + 1;
// System.out.println(i);
}
}while(i<=99999)
System.out.println(count);
案例二
int i=0;
int count=0;
do{
if(i%3==0&&i%5==0&&i%7==0){
System.out.println(i);
count++;
}
i++;
}while(i<1000);
3.for循环
案例一
水仙花数:三位数,各个位上数字的立方和等于这个数本身,例:153
个位上的数:和10 %
十位上的数:先除10,在和10 %
百位上的数:和100取商
for(int i = 100;i<=999;i++){
//判断:取到各个位上的数
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100;
if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i){
System.out.println(i);
}
}
案例二
列出5位数中的回文数:12345
取万位:和10000取商
千位:和1000取商,再和10 %
十位:和10取商,在和10 %
个位:和10 %
int count = 0;
for(int i = 10000;i<=99999;i++){
int wan = i / 10000;
int qian = i / 1000 % 10;
int shi = i / 10 % 10;
int ge = i % 10;
//判断
if(wan == ge && qian == shi){
count = count + 1;
// System.out.println(i);
}
}
System.out.println("个数是: " + count);
案例三
统计1000以内,同时是3,5,7的倍数的数有多少个
如何判断一个数是3的倍数:和3 % 结果是0.
//定义统计变量
int count = 0;
for(int i = 0;i<=1000;i++){
if(i % 3 == 0 && i % 5 == 0 && i % 7 == 0){
System.out.println(i);
// count = count + 1;
count++;
}
}
System.out.println("满足条件的数量是: " + count + " 个");
案例四
在1-100之间,若是3的倍数,则在它之后输出中文“三”,若是5的倍数,
则在它之后输出中文“五”,若是7的倍数,则在它之后输出中文“七”
数字是无条件输出的(不能换行).再加上判断的结果
for(int i = 1;i<=106;i++){
System.out.print(i);
//判断
if(i % 3 == 0){
System.out.print(" 三");
}
if(i % 5 == 0){
System.out.print(" 五");
}
if(i % 7 == 0){
System.out.print(" 七");
}
//在这里实现换行
System.out.println();
}
4.死循环
//for循环里可以什么都没有,死循环
for(;;){
//break;
}
5.嵌套循环
多种嵌套循环完成99表
//for for
for(int i = 1;i<=9;i++){
for(int j = 1;j<=i;j++){
System.out.print(j + "x" + i + "=" + (j*i) + "\t");
}
System.out.println();
}
//for while
for(int i = 1;i<=9;i++){
int j = 1;
while(j<=i){
System.out.print(j + "x" + i + "=" + (j*i) + "\t");
j++;
}
System.out.println();
}
//while while
int i = 1;
while(i<=9){
int j = 1;
while(j<=i){
System.out.print(j + "x" + i + "=" + (j*i) + "\t");
j++;
}
System.out.println();
i++;
}
//while for
int i = 1;
while(i<=9){
for(int j = 1;j<=i;j++){
System.out.print(j + "x" + i + "=" + (j*i) + "\t");
}
System.out.println();
i++;
}
6.嵌套循环案