打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
☀️ 学会编程入门必备 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

原码1 1111111
负数的反码1 0000000符号位不变,原码其他位取反
负数的补码1 0000001符号位不变,反码+1

基本语法🙊

using 关键字 👂

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

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


class 关键字👀

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


C# 中的注释❄️

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

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

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

}//end class Rectangle  

成员变量👥

变量是类的属性或数据成员,用于存储数据。在上面的程序中,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):


数据类型🎈

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

  • 值类型(Value types)
  • 引用类型(Reference types)
  • 指针类型(Pointer types)

值类型(Value types)🐶

值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。
值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。
下图列出了 C# 2010 中可用的值类型:


如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 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)🐱

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

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

对象(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# 提供了下列内置的类型转换方法:

序号方法&描述
1ToBoolean 如果可能的话,把类型转换为布尔型。
2ToByte 把类型转换为字节类型。
3ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型。
4ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构。
5ToDecimal 把浮点型或整数类型转换为十进制类型。
6ToDouble 把类型转换为双精度浮点型。
7ToInt16 把类型转换为 16 位整数类型。
8ToInt32 把类型转换为 32 位整数类型。
9ToInt64 把类型转换为 64 位整数类型。
10ToSbyte 把类型转换为有符号字节类型。
11ToSingle 把类型转换为小浮点数类型。
12ToString 把类型转换为字符串类型。
13ToType 把类型转换为指定类型。
14ToUInt16 把类型转换为 16 位无符号整数类型。
15ToUInt32 把类型转换为 32 位无符号整数类型。
16ToUInt64 把类型转换为 64 位无符号整数类型。

下面的实例把不同值的类型转换为字符串类型:

实例
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

总结💬

本篇文章介绍了C#中一些基础知识,是接着上一篇博客写的
主要介绍了C#中的进制原码反码基本语法数据类型类型转换基本输入输出

可能有些地方写的不是很全,大概就是这样啦。有空会继续更新

传送门

上 一 篇 \color{00ff90}{上一篇 } ☀️ 学会编程入门必备 C# 最基础知识介绍(一)
下 一 篇 \color{00ff90}{下一篇} ☀️ 学会编程入门必备 C# 最基础知识介绍(三)——变量、常量、运算符、判断、循环

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
好程序员大数据教程分享大数据之基础语法
数据类型、运算符与表达式
day02
15W4K58S4 实验2:格式化输出
【Dart 入门教程】(二) Dart 变量、常量、数据类型以及一些规范
【Java基础 2】Java 基础语法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服