Skip to content

C#修炼手册

基本框架

csharp
using System;
namespace 名称
{
	    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("变量");
        }
    }
}
//结果输出一行"变量",并换行。

Console 控制台对象,大部分操作基于此对象进行

输入输出语句

csharp
Console.Write();//输出内容,但不换行
Console.WriteLine();//输出内容,自动换行
Console.ReadKey();//读取单个输入,如1,2
Console.ReadLine();//读取一行输入

变量区别(整形变量,浮点数,特殊类型)

1.整形变量

可分为 有符号的整形变量无符号的整形变量

1**.1有**符号的整形变量

sbyte 范围 -128~127

int 范围 -21亿~21亿

short 范围 -32768~32767

long 范围 -9百万兆~9百万兆

1.2符号的整形变量

byte 范围 0~255

uint 范围 0~42亿

ushort 范围 0~65535

ulong 范围 0~18百万兆


2浮点数

float数的定义后边要加上f;不加 f 默认double

float存储7/8位有效数字(编译器区别),自动四舍五入;

ps有效数字 从左往右的非0数开始算有效数字;

之所以要在小数的定义 后面加f 或 m 是因为c#中 申明的小数 默认是double类型 加f是为了使系统区分double和其他类型;

csharp
float f =1.01234567890f; //输出为1.0123457
double d = 0.12345678901234567890123456789;//输出为0.12345678901234568
decimal de = 0.123456789012345678901234567890m;//输出为0.1234567890123456789012345679

3特殊类型

csharp
bool true false//布尔型,表示真假的数据类型
bool bo = true;
bool bo2 = false;

char c = 'A';//字符类型,仅用来存储单个字符的变量类型

string str = "abcdefg";//字符串类型

变量本质

变量的本质是 二进制(计算机中数据的本质都是二进制)

Q:为什么用二进制而不是三进制或其他?

A:因为电信号的电平变化为 高/低 电平表示 开/关 两个状态(即1/0)

image.png


变量命名规则

一,不能重名

二,不能以数字开头

三,不能用程序关键字命名(函数名除外)

四,不能有特殊符号(下划线_除外)(包括%,¥, 空格)


常量

特点:

1.必须初始化

2.初始化后不能被修改

3.常量申明就是在申明变量前面加 const


转义字符

使用方法:一般是 ** 加上 特殊标识 或 符号

1.特殊字符在字符串中的表示(\,’,”)

如:str=”12\’34”,输出为12‘34

2.制表符

如str=“h\thh”;输出为h hh(中间空了1个tab键)

3.光标退格

如str=”123\b123”;输出为12123

4.警报音

如 str=”\a”;输出为程序报错的系统音效

。。。。。。

如何取消 ** 的转义字符功能→在字符串双引号前加个@即可


类型转换

隐式转换

装→被赋值

概念:不同 变量类型 间的相互转换

有符号则类型转化 按以下规则

大装小,小不可装大

浮点数中 特殊 的是 decimal不能隐式转换

特殊类型(布尔型)不存在隐式转换

long>int>short>sbyte(无符号同顺序)

double>float>所有整形(有无符号)

decimal>所有整形(有无符号)>char

有符号 的变量不能 隐式转换无符号 的(int与uint等)

无符号的变量在 满足有符号变量的范围 的前提下能转换成 有符号 的变量

浮点数 可以 装 任何类型的整数

char类型可以隐式转换为部分整形和浮点数


显示转换


位运算

1.与&

csharp
位数对齐时候直接与运算,对不齐时候在左侧补0
int a = 1;//001
int b = 5;//101
int c = a & b;//001
Console.WriteLine(c);

2.或|

csharp
int a = 1;//001
int b = 5;//101
int c = a | b;//101
Console.WriteLine(c);

3.异或^

csharp
int a = 1;//001
int b = 5;//101
int c = a ^ b;//100
Console.WriteLine(c);

4.取反~

csharp
int a = 5;//**0**000 0000 0000 0000 0000 0000 0000 0101(4字节32位)
int c = ~a;//**1**111 1111 1111 1111 1111 1111 1111 1010(左侧的第一位是符号位,0表示正1表示负)
c 为-6
Console.WriteLine(c);
特殊的 是int类型 取反 得到的是 补码,补码=反码+1,所以是
**1**111 1111 1111 1111 1111 1111 1111 1010 - **0**000 0000 0000 0000 0000 0000 0000 0001
= **1**111 1111 1111 1111 1111 1111 1111 1001
再次取反
**0**000 0000 0000 0000 **0**000 0000 0000 0110 ——>即为6,然后由于符号位原本是1(-)所以加上负号
最终结果为 -6

5.左右移<<和>>

csharp
左移<<(*2)
int b = 5;//0101(5)
int c = b<<1;//01010(10)
int c = b<<2;//010100(20)
int c = b<<3;//0101000(40)
右移>>(/2)
int b = 5;//0101(5)
int c = b>>1;//0010(2)
int c = b>>2;//0001(1)
Console.WriteLine(c);
LOADING