☀️ 学会编程入门必备 C# 最基础知识介绍(二)——进制、原码反码、基本语法、数据类型、类型转换

简介: C#🔥基础知识🎓进制🙉原码反码补码🙈基本语法🙊using 关键字 👂class 关键字👀C# 中的注释❄️成员变量👥成员函数👤实例化一个类💬标识符⚡️C# 关键字☀️数据类型🎈值类型(Value types)🐶引用类型(Reference types)🐱对象(Object)类型🐸动态(Dynamic)类型🐨字符串(String)类型🐯指针类型(Pointer types)🐷类型转换🎅隐式类型转换🎄显式类型转换🎁C# 类型转换方法🔔基本输入、输出函数🎉总结💬

C#🔥

简介


C#是微软公司发布在2000年6月发布的一种面向对象的、安全的、稳定的、简单的、优雅的由C和C++衍生出来的面向对象的编程语言,它在继承C和C++强大功能的同时去掉了一些它们的复杂特性,运行于.NET

Framework和.NET Core (完全开源,跨平台)之上的高级程序设计语言。 C#读作C

Sharp。最初它有个更酷的名字,叫做COOL。 微软从1998年12月开始了COOL项目,直到2000年2月 ,COOL被正式更名为C#。

简单介绍一下,上一篇文章有专门的介绍哦~~

本篇文章介绍了C#中一些最基础的知识,是接着上一篇博客写的

主要介绍了C#中的进制、原码反码、基本语法、数据类型、类型转换、基本输入输出

传送门 C# 最基础知识介绍(一)


基础知识🎓

进制🙉

进制是计算机必备的知识,这里简单介绍一下转换用法,就不多做介绍了


二进制————逢二进一

八进制————逢八进一

十进制————逢十进一

十六进制————逢十六进一


逢二进一:0、1、101、1100

逢八进一:17、21、33、41

逢十进一:1、12、33、4、5、6、99

逢十六进一:9、A、B、C、D、E、F、3F、10


十进制转二进制

方法一:666 = 512 + 128 + 16 + 1

= 10 1001 0001


八进制转二进制 口诀:记住一二四,一位拆三位

1 2 6

001 010 110


二进制转八进制 口诀:记住一二四,三位合一位

110 111 001

6 7 1


十六进制转二进制 口诀:记住一二四和八,一位拆分成四位

1 A 2 F

0001 1010 0010 1111


二进制转十六进制 口诀:记住一二四和八,四位融合成一位

0001 1011 1001

1 B 9


原码反码补码🙈

正数的原码、反码、补码是一样的

原码:0 1111111

反码:0 1111111

补码:0 1111111


image.png

image.png基本语法🙊

using 关键字 👂

在任何 C# 程序中的第一条语句都是:


using System;

using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。


class 关键字👀

class 关键字用于声明一个类。


C# 中的注释❄️

注释是用于解释代码。编译器会忽略注释的条目。在 C# 程序中,多行注释以 /* 开始,并以字符 */ 终止,如下所示:

/*This program demonstrates
The basic syntax of C# programming 
Language */

单行注释是用 ‘//’ 符号表示。例如:

}//end class Rectangle  
• 1

成员变量👥

变量是类的属性或数据成员,用于存储数据。在上面的程序中,Rectangle 类有两个成员变量,名为 length 和 width。


成员函数👤

函数是一系列执行指定任务的语句。类的成员函数是在类内声明的。我们举例的类

Rectangle 包含了三个成员函数: AcceptDetails、GetArea 和 Display。


实例化一个类💬

在上面的程序中,类 ExecuteRectangle 是一个包含 Main() 方法和实例化 Rectangle 类的类。


标识符⚡️

标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:


标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。

标识符中的第一个字符不能是数字。

标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ’ / \。

标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。

标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。

不能与C#的类库名称相同。

C# 关键字☀️

关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。

在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。

下图列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):


image.png

image.png数据类型🎈

在 C# 中,变量分为以下几种类型:


值类型(Value types)

引用类型(Reference types)

指针类型(Pointer types)

值类型(Value types)🐶

值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。

值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。

下图列出了 C# 2010 中可用的值类型:


image.png

image.png如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸:

实例:
using System;
namespace DataTypeApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         Console.WriteLine("Size of int: {0}", sizeof(int));
         Console.ReadLine();
      }
   }
}

当上面的代码被编译和执行时,它会产生下列结果:


Size of int: 4


引用类型(Reference types)🐱

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。


换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:object、dynamic 和 string。


对象(Object)类型🐸

对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。


当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。

object obj;
obj = 100; // 这是装箱

动态(Dynamic)类型🐨

您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。

声明动态类型的语法:

dynamic <variable_name> = value;

例如:

dynamic d = 20;

动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。


字符串(String)类型🐯

字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。

例如:

String str = "runoob.com";

一个 @引号字符串:

@"runoob.com";

C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待,比如:

string str = @"C:\Windows";

等价于:

string str = "C:\\Windows";

@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。

string str = @"<script type=""text/javascript"">
    <!--
    -->
</script>";

用户自定义引用类型有:class、interface 或 delegate。


指针类型(Pointer types)🐷

指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。

声明指针类型的语法:

type* identifier;

例如:

char* cptr;
int* iptr;

类型转换🎅

类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:


隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换,

不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。

显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

隐式类型转换🎄

描述:是一种安全类型的转换,不会导致数据丢失,因此不需要任何特殊的语法。由小到大时,系统自动的进行隐式转换。低精度转高精度,隐式类型转换。

Byte b = 100;
int c = b;

显式类型转换🎁

描述:显式转换需要强制转换运算符。由大变小需要用强制转换,这样需要付出缺失精度的代价。

高精度转低精度,容易造成精度缺失,只会识别低精度的所在的位数得到的数据。

Convert.ToInt32()与字符串拼接

必须两边都是整数类型才能如下转换。

namespace TypeConversionApplication
{
    class ExplicitConversion
    {
        static void Main(string[] args)
        {
            double d = 666666.66;
            int i;
            // 强制转换 double 为 int
            i = (int)d;
            Console.WriteLine(i);
            Console.ReadKey();
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

666666

C# 类型转换方法🔔

C# 提供了下列内置的类型转换方法:image.png下面的实例把不同值的类型转换为字符串类型:

实例
namespace TypeConversionApplication
{
    class StringConversion
    {
        static void Main(string[] args)
        {
            int i = 75;
            float f = 53.005f;
            double d = 2345.7652;
            bool b = true;
            Console.WriteLine(i.ToString());
            Console.WriteLine(f.ToString());
            Console.WriteLine(d.ToString());
            Console.WriteLine(b.ToString());
            Console.ReadKey();
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

75

53.005

2345.7652 True

基本输入、输出函数🎉

输出函数

System.Console.WriteLine("Hello Wrold!")

此方法是 Console 类的输出方法之一。

如果程序开始处包含 “using ”指令,则无需完全限定 System 类和方法即可直接使用它们。

例如,可以改为调用 Console.WriteLine 而非 System.Console.WriteLine

输入函数

//读取一个字符,随便按下一个字符后终止输入操作
int n = Console.Read ();        
//读取一行字符,按回车结束输入操作    
string str = Console.ReadLine ();    
string->int
相关文章
|
1月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
1月前
|
存储 C#
C#数据类型之结构体介绍
C#数据类型之结构体介绍
|
1月前
|
C#
C#数据类型之枚举类型
C#数据类型之枚举类型
|
1月前
|
存储 编译器 数据处理
C#基础入门之数据类型
C#基础入门之数据类型
|
3月前
|
存储 开发框架 .NET
【C#】C# 基础语法与游戏开发
【1月更文挑战第21天】【C#】C# 基础语法与游戏开发
|
4月前
|
存储 C# 图形学
【Unity 3D】C#数据类型和变量、命名规范的讲解(附源码)
【Unity 3D】C#数据类型和变量、命名规范的讲解(附源码)
51 1
|
1月前
|
存储 C#
深入C#数据类型
深入C#数据类型
5 0
|
1月前
|
C#
C#语法快速热身
C#语法快速热身
7 0
|
1月前
|
C#
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
|
1月前
|
存储 C# 索引
C#学习相关系列之数据类型类的定义(一)
C#学习相关系列之数据类型类的定义(一)