c#的数据类型及计算机存储数据

一.数据类型分为  值类型和引用类型

1.值类型:值类型:存储在堆栈中   存储空间小   调用速度快

位:代表取值范围2的多少次方

有无符号:代表是否能够取得负数

无符号代表不包括负数

0是最小的正整数

-1是最大的负整数

byte/sbyte  8位无/有符号字符     0~255

 int    32位有符号字符   取值范围:-2147 483 648~2147 483 647

uint  32位无符号字符    取值范围:0 ~4294 967 295

short/ushort     16位有/无符号字符   

long/ulong       64位有/无符号字符      

bool   char   double   float   decimal    

 

2.引用类型:存储在堆中        存储空间大  调用速度慢    string    object

命名空间:是.net封装好的一些类和对象,是类所在的场所     (命名空间>类>对象)

二.变量

1.变量
(1)定义
一个变量只不过是一个供程序操作的存储区的名字。在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作。

(2)变量的声明
C#中变量定义的语法:

data_type:必须是一个有效的 C# 数据类型,可以是 char、int、float、double 或其他用户自定义的数据类型。
variable_list:可以由一个或多个用逗号分隔的标识符名称组成。

一些有效的变量定义如下所示:

int i, j, k;
char c, ch;
float f, salary;
double d;

(3)变量的初始化
变量通过在等号后跟一个常量表达式进行初始化(赋值)。

2.常量
常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。
常量可以被当作常规的变量,只是它们的值在定义后不能被修改。
 

三.计算机存储空间

整数在计算机中存储是以补码的方式存储的,想要知道补码,必须先知道数字进制转换和原码和反码

1. 不同进制的组成和输出 
 二进制:以 0b 开头,由 0 和 1 组成
 八进制:以 0 开头,由 0-7 组。(C#中没有现成的表示方式)
十进制:默认就是十进制,由 0-9 组成
 十六进制:以 0x 开头,由 0-9+A-F 组成
2. 进制之间的转换算法  其他进制转十进制
 口诀:将所有的位上面的值*进制数的次方连起来既可以得到十进制
 位值:每一个位数上面对应的值进制

例:(1)将以下二进制数值分别转成八进制、十进制、十六进制
                0b101011

十进制:1*2^5+0*2^4+1*2^3+0*2^2+1*2^1+1*2^0=43

八进制:53

十六进制 :2B

       (2)将以下十进制数值分别转成二进制、八进制、十六进制     

     665

    二进制:1010011001       

     八进制:1231

    十六进制 :299

3.原码 、反码 、补码

(1)源码:将一个整数转换成二进制,然后最高位用来表示符号位(0
表示正数,1 表示负数,其余位表示数值位)
例如:7:00000111 -7:10000111
(2) 反码 
正数的反码和原码一致,负数的反码位数全部取反,除最高位
(3)补码 
正数的补码和原码一致,负数的补码在反码的基础上末尾+1

练习案例:告白框案例

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace biaobaikuang
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Left = Screen.PrimaryScreen.Bounds.Width / 2 - this.Width / 2;
            this.Top = Screen.PrimaryScreen.Bounds.Height/ 2 - this.Height / 2;
            label1.Left = this.Width / 2 - label1.Width / 2;
            label1.BackColor = Color.Transparent;
            label1.ForeColor = Color.DarkOrange;
            button2.Visible = false;
            button1.BackColor = Color.LightBlue;
            button2.BackColor = Color.LightBlue;
            button3.BackColor = Color.LightBlue;
            button1.ForeColor = Color.Green;
            button2.ForeColor = Color.Green;
            button3.ForeColor = Color.Green;
            button1.Font = new Font("隶书", 20);
            button2.Font = new Font("隶书", 20);
            button3.Font = new Font("隶书", 20);
            this.FormBorderStyle = FormBorderStyle.None;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            
        }

        private void button3_Click(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("真巧,我也喜欢你!");
        }

        private void button2_MouseEnter(object sender, EventArgs e)
        {
            button2.Visible = false;
            button3.Visible = true;
        }

        private void button3_MouseEnter(object sender, EventArgs e)
        {
            button3.Visible = false;
            button2.Visible = true;
        }

        private void Form1_SizeChanged(object sender, EventArgs e)
        {
            label1.Left = this.Width / 2 - label1.Width / 2;
        }
    }
}

简易计算器案例

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace _04_计算器
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
            textBox3.ReadOnly = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //将comboBox中的文本内容(string)转换为int类型
            //123==“123”
            int i = int.Parse(textBox1.Text);
            int k = int.Parse(textBox2.Text);

            //索引值从0开始
            int fun = comboBox1.SelectedIndex;
            //判断两边的内容是否相等
            int res = 0;
            if (fun==0)
            {
                res = i + k;
            }
            if (fun==1)
            {
                res = i - k;
            }
            if (fun == 2)
            {
                res = i * k;
            }
            if (fun == 3)
            {
                res = i / k;
            }
            if (fun == 4)
            {
                res = i % k;
            }
            textBox3.Text = res.ToString();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43552118/article/details/85266866