字符类型里面只能存储一个字符,否则会报错,字符旁边也要通过引号' '引起来
强制类型转换要在字符前面加一个括号
例如:int a=97;
char b=a;这样会运行不出来,所以应该变为
int a=97;
char b=(char)a;这样才能运行(强赛)(注:假如数字的范围超出了容器的大小那就塞不进去了)
字符类型里面只能存储一个字符,否则会报错,字符旁边也要通过引号' '引起来
强制类型转换要在字符前面加一个括号
例如:int a=97;
char b=a;这样会运行不出来,所以应该变为
int a=97;
char b=(char)a;这样才能运行(强赛)(注:假如数字的范围超出了容器的大小那就塞不进去了)
第八十课 十进制和二进制之间的转换
1. 进制基础表达方法:
二进制 0-1
八进制 0-7
十进制 0-9
十六进制 0-15(10用a表示,11用b表示……15 用f表示)
2. 进制的权重计算解析:(二进制转十进制)
①十进制转十进制(演示)
1 2 3 (十进制一百二十三)
↓
1*+2*
+3*
=100+20+3=123
表示位数上的权重,10表示十进制。
②二进制转十进制:
1 1 1 0 = 14(二进制的14)
↓
1*+1*
+1*
+0*
=1*8+1*4+1*2+0
=8+4+2+0
=14
利用权重将二进制转换成十进制的方法。
3. 不同进制有不同的标识。
4. 将十六进制转换成十进制的数:
a 2 (十六进制的162,a为10)
↓
10*+2*
=160+2=162
5. 将10进制转换成二进制
51(10进制)
51除2-----余1
25除2-----余1
12除2-----余0
6除2-------余0
3除2-------余1
1除2-------余1
0
然后重下向上些就是二进制
110011 这就是二进制的51
每一步都这么神奇,当初研究计算机的那些科学家们是怎么想出来的呢?
第七十九课 什么是数制(二进制)
二进制是数据储存的基础。
内存地址一般使用十六进制保存。
第七十六课 基本数据类型—整形
bool 布尔值 0到255
byte 8位无符号整数 U+0000到U+ffff
char 16位Unicode字符
decimal 128位精确的十进制值,
28-29位有效位数 很多字符
double 64位双精度浮点型
float 32位单精度浮点型
int 32位有符号整数类型
long 64位有符号整数类型
sbyte 8位有符号整数类型 -128到127
short 16位有符号整数类型 -32768到32767
uint 32位无符号整数类型 0到 4294967295
ulong 64位无符号整数类型 0到 18446744073709551615
ushort 16位无符号整数类型 0到65535
有符号的可正可负,无符号是正数,因为有符号的有一位要储存符号,所以比无符号的多存储字符。
/*
*/多行注释
ctrl + k , ctrl + c注释快捷键
ctrl +k, ctrl + u取消注释快捷键
声明变量的时候可以声明多个变量,只有在类型一样的时候才可以这样声明
字符串加上+意味字符串的组拼
例:
int a=3,b=8;
Console.WriteLine(a+"+"+b);//结果为3+8
Console.WriteLine("a+b"+a+b);//结果为a+b38
Console.WriteLine("a+b"+(a+b));//结果为a+b11
计算机的数据也需要“容器”去存放,这个容器叫做变量,我们需要在程序当中创建变量去存放相应的数据
例:
int age;//创建了一个数据的容器,容器的名字叫做age,容器的类型是int,名字可以随便起但是类型是不能随便更改的
age=10;//意为往容器里放东西,意味把等号右边的东西放到左边名为age的容器里面(赋值)
变量名不能重复,可以通过改变大小写使变量名不一样,变量名由英文字母,数字和下划线组成且不能由数字开头
变量类型:
int整数 double浮点(小数) char字符
快捷键用法:
Home键:用来定位光标,把光标迅速定位定位在一行的最前面或最后面
Shift:可以用来勾选多行代码
Ctrl:用来选择文件(可用来多选)
Ctrl+A:全选代码
Ctrl+S:保存代码
Ctrl+Z:取消操作
Ctrl+X:剪切
Ctrl+C:复制
Ctrl+V:粘贴
PgUp和PgDn:翻页
F5:调试
Ctrl+F5:开始执行(不调试)
Del:删除光标后面的代码
Ins:编辑模式变成插入模式
字符:编程时不能使用全角字符,只能在字符串中使用中文字符
思维导图可以用Process On和百度脑图
用Tab键添加分支可以在分支按Tab键添加子分支,可以用Del删除
一个项目只能有一个入口方法(Main方法)
变量名用驼峰命名法,方法名和函数名用帕斯卡命名法
@后的转义字符不识别
string str = @"www.sikiedu.com"
第七十八课 类型的转换(显示和隐式转换)
1. 隐式转换:
sbyte a = 23;
int b =1000;
b=a;
他们都是数据类型中的整数类型,其中int类型比sbyte类型大,盛放的字符多,所以小的放在大的里面是可以的,不用过多得操作。
sbyte a = 23;
int b =1000;
a = (sbyte)b;
如果大的数据类型放在小的数据类型里面就需要强制转换了,也叫做强塞。这就需要强制转换操作了(sbyte)。
2. 类型的转换得是同一类型之间的转换,比如数字类型之间可以相互转换,但是我们不能把一个字符串转换成整数类型,但是要把一个数字字符串转换成数字的话,我们是有对应的方法。
Convert.ToInt32(Console.ReadLine());
Convert.ToInt32 这是方法。将数字字符串转换成数字的方法。
Console.ReadLine(); 获得字符串。
int a = Convert.ToInt32("1234");
将数字字符串转换成数字赋值给int类型的变量a
3. 将数字转换成字符串:
方法1:
string a = 123+"";
让123与空字符组拼就会转换成一个字符串。
方法2:
string b = Convert.ToString(123);
引用了一种方法将数字转换成字符串。
第七十七课 基本数据类型—浮点(小数)类型
1. float与double
float要比double的数据类型小
float f = 4.5f;
如果后面不加f,4.5被默认为double类型,那么这里就不成立,意思是要把大的数据类型放在小的数据类型中是不合理的;后面加上f,说明4.5就是float类型。(加上大写的F或小写的f都可以)
2.字符类型可以当做一个整形类型赋值给int类型的,因为没个字符类型的字符在阿斯克码对照表中都对应一个数字。
学习方法
做练习 多试验 多百度(谷歌更好) 不用深入
不懂就问跳过,
ctrl+k, ctrl+c 注释
ctrl+k, ctrl+u 取消注释
第七十五课 猜数字小游戏
1. Random ad = new Random();
int a =ad.Next(11);
(个人理解)ad为随机变量,new Random()为随机变量的方法,然后可以int一个整数型来装.Nex后面的数字,我想这里是不是也可以装别的类型的东西呢?
2.随机数的取值范围
Random ad = new Random();
int a =ad.Next(1,20);
其实取值是从1到19,其中不包括最大的数20.
3. 猜数字游戏,随机生成一个正整数,用户输入一个数字,如果输入的数字小于随机生成的正整数,那么就输出“输入的数字小了”,反而反之,如果输入的数字与随机生成的数字相同,则输出“恭喜你,猜对了!”
Random ad = new Random();
int a =ad.Next(11);
while (true)
{
int b = Convert.ToInt32(Console.ReadLine());
if (b != a)
{
if (b > a)
{
Console.WriteLine("输入的数字大了");
}
else if (b < a)
{
Console.WriteLine("输入的数字小了");
}
}
else
{
Console.WriteLine("恭喜你,猜对了!");
break;
}
}
总结:
写完程序以后,需要再想想是不是能简化,是不是有啰嗦的地方和干脆没必要的地方。(额~可能能检查出来吧!我要44)
注释:Ctrl + K 然后Ctrl + C
取消注释:Ctrl +K 然后Ctrl + U
ctrl k ctrl c 注释
CTRL k ctrl u
第七十四课 编程题
1. 输入两个正整数num1和num2,输出这两个正整数的最大公约数。
int num1 = Convert.ToInt32(Console.ReadLine());
int num2 = Convert.ToInt32(Console.ReadLine());
int a = 0;
int b = 0;
if (num1 > num2)
{
a = num1;
num1 = num2;
num2 = a;
}
for(int i = 1; i <= num1; i++)
{
if (num1 % i == 0 && num2 % i == 0)
{
Console.WriteLine("共有公约数为:");
for(int j = 0; j < i; j++)
{
if (b < i)
{
b = i;
}
}
}
}
Console.Write(b);
我的方法是从最小公约数开始,一直到最大公约数,但只保留最后一个公约数,就是最大公约数,然后输出。
老师的方法,让遍历循环递减遍历,只输出第一个公约数,老师的方法简单。
第七十三课 九九乘法表和白文买鸡问题
1. 九九乘法表
for(int i =1; i <= 9; i++)
{
for(int j = 1; j <= i; j++)
{
Console.Write("{0}*{1}" + "="+"{2}"+" ", j, i,j*i);
}
Console.WriteLine();
}
i即代表行数,遍历起来也代表在每行输出的个数。
2. 白文买鸡
用100文钱买鸡,公鸡、母鸡、小鸡都要有。其中,公鸡3文钱一只,母鸡5文钱一只,小鸡2文钱一只,请问公鸡、母鸡、小鸡各买多少只刚好100文钱?
把所有的满足情况罗列出来。
用x表示公鸡,y表示母鸡,z表示小鸡
int x = 0; int temp = 0;
for (int i = 0; i < 34; i++)
{
x += 3;
int y = 0;
for (int j = 0; j < 20; j++)
{
y += 5;
int z = 0;
for (int t = 0; t < 50; t++)
{
z += 2;
if (x + y + z == 100)
{
Console.WriteLine("公鸡:{0}、母鸡:{1}、小鸡:{2}", x, y, z);
temp++;
}
}
}
}
Console.Write("共有{0}种情况",temp);
我滴天,憋死我了。
老师的方法简单,将各类的钱数放在if语句的判断里,这样就简化了。