byte LED = 0b00110011;//八个LED灯输出0x33;
计算机存储用多少bit位来存储数据。虽然bit位长度一样,但类型能决定它是正数还是负数。
数据来源于生活。有值类型(0~255)的和符号类型(汉字,图片编号\u0039)。
值类型来源于进制。比如八卦 :表示硬币反面,I 表示硬币正面。用3个硬币表示数大小。
有 : : : 到 I I I 一共8种情况
最早是用绳子记数,绳子打结和不打结。
拿4个硬币,利用正反面排序,可用得到16种情况,反反反反,到,正正正正。
所以有多少个元素,就是多少进制。
在一个圆盘上写多少个元素,就是多少进制。比如时钟是12个元素,就是12进制。再比如写0123456789是十个元素,所以是十进制。
那八卦是3个硬币表示的,从 反反反 到 正正正 是8个元素,所以是八进制
下面用 bit 替换 硬币。 1个bit可以表示0和1。
从 8bit 到 128bit
//无符号正数
byte 8bit(8位无符号整数0~255)
ushort 16bit(0~66635)
uint 32bit(0~4294967295)
ulong 64bit(0~18446744073709551615)
//可为负数类型
sbyte 8bit( -128~127)
short 16bit(- 32768~ 32767)
int 32bit ( -2147483648~2147483647)
long 64bit ( -9223372036854775808~9223372036854775807)
负数在内存中存储有区别:
取出:二进制左最高位是符号位,其他位取反,再加1元利息。就是获取的负数值
存入硬盘:左最高位不变,其他位取反,再减1元手续费。(-1是bit全1状态)
//有小数点的浮点类型
float 32bit (单精度)3.1415f
double 64bit (双精度)3.1415d
decimal 128bit(28-29有效位数)强制转换 (Decimal)17.36; //12.34m
非值类型有:
bool (布尔值)
char (16位Unicode \uFFFF 把F替换十六进制)
string(字符串)
DateTime(时间)
Dictionary<键,值> //跟键盘一样,按某个键,获得对象。 Student student=stuDic[ "VIP3" ];
null
如果想把数值转成字符串显示,是需要转换的;
int a=127;和字符串 “127” 并不相等;
一般用 .ToString();
再如果想以16进制显示 FF是需要格式转换的 String.Format("0:2X",255);
逆回来可以用 int.Parse("255");