C# 变量本质 #我的编程语言学习笔记



//变量类型回顾  // 负数 有符号
//sbyte   (-128-127)           1字节   8位
//int    (-21亿多-21亿多)       4字节   32位
//short   (-3万多-3万多)        2字节   16位
//long    (-9百万兆多-9百万兆多) 8字节   64位


//short a = Convert.ToInt16("jin");
//Console.WriteLine(a);

//正数 无符号
//byte      (0-255)              1字节   8位
//uint    (0-42亿多)              4字节  32位
//ushort (0-6万多)                2字节  16位
//ulong   (0-18百万兆多)           8字节  64位

//浮点数
//float   (小数位f 7-8位有效数字)       4字节    32位
//double  (小数位   15位有效数字)        8字节   64位
//decimal (27-28 位有效数字 非必要不用)   16字节  128位
//decimal

//特殊                                    
//bool  (真假  true和flase)            1字节   8位
//char   (一个字符)                    2字节  16位
//string (一串字符)                    可变   不固定

// 1byte = 8bit
// 1M  = 1024byte
// 1GB = 1024MB
// 1TB = 1024GB

#region   //通过sizeof方法 可获取变量类型所占内存空间 (单位:字节)

// 负数 有符号
int sbyteSize = sizeof(sbyte);
Console.WriteLine("sbyte 所占字节数为:" + sbyteSize);
int intSize = sizeof(int);
Console.WriteLine("int 所占字节数为:" + intSize);
int shortSize = sizeof(short);
Console.WriteLine("short 所占字节数为:" + shortSize);
int longSize = sizeof(long);
Console.WriteLine("long 所占字节数为:" + longSize);
Console.WriteLine("**********************************************");
//正数 无符号
int byteSize = sizeof(byte);
Console.WriteLine("byte 所占字节数为:" + byteSize);
int uintSize = sizeof(uint);
Console.WriteLine("uint 所占字节数为:" + uintSize);
int ushortSize = sizeof(ushort);
Console.WriteLine("ushort 所占字节数为:" + ushortSize);
int ulongSize = sizeof(ulong);
Console.WriteLine("ulong 所占字节数为:" + ulongSize);
Console.WriteLine("**********************************************");
//小数  浮点
int floatSize = sizeof(float);
Console.WriteLine("float 所占字节数为:" + floatSize);
int doubleSize = sizeof(double);
Console.WriteLine("double 所占字节数为:" + doubleSize);
int decimalSize = sizeof(decimal);
Console.WriteLine("decimal 所占字节数为:" + decimalSize);

//特殊
int boolSize = sizeof(bool);
Console.WriteLine("bool 所占字节数为:"+boolSize);
int charSize = sizeof(char);
Console.WriteLine("char 所占字节数为:"+charSize);

//数字36.6 怎么表达
float sz = 36.6f;
Console.WriteLine("数字"+sz);
#endregion

#region   变量本质
{//变量本质是二进制,计算机中所有数据的本质都是二进制 是一堆0 和1
 //为什么是二进制?
 //数据传递只能通过电信号,只能开和关两种状态。所以就用0和1来表示这两种状态
 //计算机中存储单位最小位bit(位),他只能表示0和1两个数字
 //1bit  就是1个数 要不是0 要不是1
 //为了方便数据表示
 //出现一个叫byte字节的单位,它是由8个bit组成的储存单位。
 //所以我们一般说一个字节为8位。
 //1byte = 0000 0000

    //二进制和十进制的对比
    //二进制和十进制的相互转换

}
#endregion


#region   //十进制  转换二进制
{
    // 0          0
    // 1          1     0+1
    // 2       2/2=1余0                                            10     
    // 3       3/2=1余1      1没法除2了结束                         11
    // 4       4/2=2余0    2/2=1余0                               100
    // 5       5/2=2余1    2/2=1余0                               101
    // 6       6/2=3余0    3/2=1余1                               110
    // 7       7/2=3余1    3/2=1余1  1没法除2了结束,所以是         111
    // 8       8/2=4余0    4/2=2余0  2/2=1余0  1没法除2了结束,    1000
    // 9       9/2=4余1    4/2=2余0  2/2=1余0  1没法除2了结束,    1001
    //10   10/2=5余0  5/2=2余1  2/2=1余0   1没法除2了结束,        1010
    //90    90/2=45余0  45/2=22余1 22/2=11余0 11/2=5余1 5/2=2余1 2/2=1余0   1011010

    //456   456/2=228余0 228/2=114余0  114/2=57余0  57/2=28余1 28/2=14余0  14/2=7余0 7/2=3余1  3/2=1余1   111001000      
    //99    99/2=49---1   49/2=24---1  24/2=12---0   12/2=6---0   6/2=3---0   3/2=1---1      1100011
}

#endregion

#region  //二进制  转换十进制
{
    //11000111   从右到左看 最右边的一位为第0位 如果该为不为0是1 则加上2的N位次方  末位数为1的 加2的N位次方=199
    //11000111   从右到左看第一位第二位第三位都是1 则  2的0次方+2的1次方+2的2次方+2的6次方+2的7次方(从右向左数0123456 第六位第七位都是1)
    //                                                 1+2+4+64+128=199
    //001101  1+4+8
    // 0       0
    // 1       2的0次方=1
    //10       0+第一位2的1次方=2
    //11       第0位2的0次方+第一位2的1次方=3
    //1010     0+2的1次方+2的3次方=0+2+6=8
    //110      0+2的1次方+2的2次方=0+2+4 =6
    //1101   2的0次方+2的2次方+2的3次方=1+4+8=13

    //1010101
    //2的0次方+2的2次方+2的4次方+2的6次方=85
    //1+4+16+64=85
    //11010101
    //2的0次方+2的2次方+2的4次方+2的6次方+2的7次方=213
    //1+4+16+64+128=213

   // str6 = "3214" + 1 + true + 1.65;
}
#endregion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值