一: 进制转换
在计算机中, 数据都是以0和1来表示的
进制: 进位制
十进制: 数字由0~9这10个数字来表示, 逢10进1位
0 1 2 3 4 5 6 7 8 9 10
二进制: 数字由0和1这两个数字来表示, 逢2进1位
0 1 10 11 100 101 110 111 1000....
八进制: 由0~7来表示一个数字, 逢8进1
0 1 2 3 4 5 6 7 10 11 ...
十六进制: 由0~9和a~f来表示一个数字, 逢16进1
0 1 2 3 4 5 6 7 8 9 a b c d e f 10...
二进制: 0b10010 11000
八进制: 01234567
十六进制: 0xabcd
进制转换:
非十进制转十进制
这一位的数字 * 进制 ^ (位数 - 1)
0b1001 = 1x2^3 + 1 = 9
0b1100110 = 2^6 + 2^5 + 2^2 + 2^1
0123 = 1x8^2 + 2x8 + 3
十进制转非十进制
辗转相除法: 让一个数字除进制, 将得到的商再除进制, 直到商位0停止, 将每一步得到的余数倒着连起来
二进制转八进制/八进制转二进制
三位一取
0b001 100 110 -> 0146
0176 -> 0b1111110
二进制和十六进制的转换
四位一取
0b0011 0011 0101 -> 0x335
0xA9F -> 0b101010011111
十进制和二进制
0 -> 0b0
1 -> 0b1
2 -> 0b10
二: 原码, 反码, 补码
二进制中每一位 称为bit
8bit ==> 1byte
1024byte ==> 1kb
1024kb ==> 1mb
1024mb ==> 1GB
1024GB ==> 1TB
1024TB ==> 1PB
1024PB ==> 1EB
在符号位上用"0"表示正数;用"1"表示负数
1: 原码
一个数字的二进制表示形式
2: 反码
除符号位, 每一位取反
3: 补码
正数: 等于本身
负数: 反码 + 1
三: 标识符
用来表示一条数据
- 只能由字母数字下划线和@符号组成
- 标识符不能以数字开头
- 如果包含@, 那么@必须在首位
- 标识符不能是系统关键字
- 标识符的命名应该望文知意
- 标识符应该遵循驼峰命名法
如果一个标识符由多个单词组成,那么第一个单词首字母小写,从第二个单词开始,以后的每个单词都要首字母大写
四: 变量, 常量
一个标识符表示的数字可以发生改变, 那么就称为--变量
一个标识符表示的数字不会发生改变, 那么就称为--常量
五: 数据类型(基本数据类型/引用数据类型)
整型(有符号无符号的差别就是最高位是否用来表示符号)
有符号整型
字节型 sbyte 1byte -128 ~ 127
短整型 short 2byte -2^(位数-1) ~ 2^(位数-1) -1
整型 int 4byte
长整型 long 在32位机器占4字节,在64位机器占8字节
无符号整型
字节型 byte 1byte 0 ~ 255
短整型 ushort 2byte 0 ~ 2^(位数) - 1
整型 uint 4byte
长整型 ulong 8byte
浮点型
float 4byte
double 8byte
decimal 16byte
布尔型
bool 1byte true/false
字符型
(任何占用1位的,都是字符)
char 2byte
- 在程序中, 单个字符需要用''引起来 '你' 'h' ')'
- 一个字符只能是1位, 不能多也不能少
'hello' '' ' '
- 默认值是 ' '
字符串:就是一系列字符串起来, 用string来表示
"hello world"
""
六: 如何在代码中写一个变量
数据类型 标识符 = 初始值
- 变量不能重复定义
const关键字修饰的就是常量
七: 注释
对一段程序的说明
注释不会被编译, 所以可以在注释里随便写
// 单行注释
/*
多行注释
*/