对于我们的课程来说,编程是绕不开的一个门槛。但是对于我们的教授对象,太浅的话完不成课堂教学,太深又会讲的不知道什么时候是个头。所以只能讲一些偏理论的东西,以及绕不开的知识
对于编程的学习我觉得一开始要了解两种特殊的量,变量与常量,他们的区别只有一个就是他们的储存状态会不会随着程序的运行发生改变,更简单的描述是。这个量会不会变化,变就是变量,不变就是常量。
现有的编程体系里面有两种语言的体系,一种叫编译语言,一种叫做脚本语言。我们拿TT来说,TT支持CPP和Python两种语言开发,这个地方只谈里面常量在这俩种语言之间的差异。
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN); //定义接收引脚为11脚.
decode_results results; //声明一个IRremote库函数独有的变量类型(decode_resultc)
以上展示的是在Ardunio内常量的命名
double adc = 199999999;
这个是变量的命名,对于专业的编写者来说,在程序内部的所有变量所占用的空间都是精心设计的,虽然写起来比较费事,但是由于全做了相应的说明,在编译器的编译阶段,编译器会直接按照变量类型为程序申请相应的空间。执行起来会变快。这就是静态的编译型语言的特点。与之相对的是脚本型语言,在数据类型的处理上是动态的,就是你只管写这个量出来就好,至于是占用空间多大这些细节问题你不要考虑。你可能会说这个好这个好,确实是写起来很爽。但是确定也很明显,解释器解释的时候大部分时间都是在计算这个变量的存储空间分配问题,所以说不是你不用分配空间了,而是这个工作给了计算机来做。直观的感受就是比较慢。在资源和要考虑空间大小的情况下,是不考虑解释型语言的。
对应在Arduino内的八种基本数据类型:byte、short、int、long、float、double、boolean、char。
byte
8位、有符号的以二进制补码表示的整数min : -128(-2^7)max: 127(2^7-1)default: 0对应包装类:Byteshort
16位、有符号的以二进制补码表示的整数min : -32768(-2^15)max: 32767(2^15 - 1)default: 0对应包装类:Shortint
32位、有符号的以二进制补码表示的整数min : -2,147,483,648(-2^31)max: 2,147,483,647(2^31 - 1)default: 0对应包装类:Integerlong
64位、有符号的以二进制补码表示的整数min : -9,223,372,036,854,775,808(-2^63)max: 9,223,372,036,854,775,807(2^63 -1)default: 0对应的包装类:Longfloat
单精度、32位、符合IEEE 754标准的浮点数float 在储存大型浮点数组的时候可节省内存空间浮点数不能用来表示精确的值,如货币default: 0.0f对应的包装类:Floatdouble
双精度、64位、符合IEEE 754标准的浮点数浮点数的默认类型为double类型double类型同样不能表示精确的值,如货币default: 0.0d对应的包装类:Doublechar
char类型是一个单一的 16 位 Unicode 字符最小值是 \u0000(即为0)最大值是 \uffff(即为65,535)char 数据类型可以储存任何字符对应的包装类:Characterboolean
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
// byte
System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
System.out.println("包装类:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println();
// short
System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
System.out.println("包装类:java.lang.Short");
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();
// int
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
// long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
// float
System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
System.out.println("包装类:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();
// double
System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
System.out.println("包装类:java.lang.Double");
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
// char
System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
System.out.println("包装类:java.lang.Character");
// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE);
// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
System.out.println("最大值:Character.MAX_VALUE="+ (int) Character.MAX_VALUE);
}
}
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
因为Ardunio其实是wring语言+CPP的语言改装出来的一种语言。甚至都些程度来说都不是一种编程语言。看其对应的器件库的时候,CPP的味道很浓,就认为是CPP吧。以上是CPP语言内的8种数据类型以及对应的输出结果,可以作为学习的资料来参考
评论