(二)Data types 数据类型

 

Data types  数据类型
 
所有的程序都依靠数据来运作,数据因目的不同可以有不同的类型 。比如,访问数组可以用整型数据,价格可以用双精度的浮点型数据。在 MQL 4 中没有专门用来标记货币值的数据类型。
不同的数据类型有不同的处理速度,整型数据是最快的。 双精度的数据处理需要额外的处理器, 所以处理浮点型数据比较复杂, 比处理整型数据慢一些。 字符串是处理速度最慢的,因为它要存取动态内存。
主要的数据类型如下:
  整型数据 (int)
  布尔数据 (bool)
  字符数据 (char)
  字符串数据 (string)
  浮点型数据 (double)
  颜色数据 (color)
  日期时间数据 (datetime)
color 和 datetime 可以使我们更清楚的区分图表中的内容,在 expert advisor 和 indicator
中经常使用这些数据类型。颜色和日期时间数据用整数来表示。int 和 double 都属于数值
(数字)型。
在表达式运算中使用强制的类型转换。
Type casting  类型转换
 
表达式中使用强制的数据转换,转换时类型的优先级如下:
int (bool,color,datetime);
double;
string;
在运算完成之前(除了数据已被定义的),数据会根据优先级被转换。当定义数据的操作完成
前 ,数据会转换成被定义的数据类型。
示例:
int i = 1 / 2; // 没有类型转换,结果为 0
int i = 1 / 2.0; // 表达式中有浮点型数据,但会转换成整型数据,结果为 0
double d = 1.0 / 2.0; // 没有类型转换,结果为 0.5
double d = 1 / 2.0; // 表达式计算的结果是浮点型数据,和定义的类型一样,结果为 0.5
double d = 1 / 2; // 表达式是整型数据的计算,然后被定义为浮点型数据,结果为 0.0
类型转换不但运用在常量中,还被运用在相应的变量中。
Integer constants  整数常量
 
十进制: 数字 0 – 9 ,包括负数。
示例:
12, 111, -956 1007
十六进制: 数字 0 – 9 , 字面 a – f 或者 A – F 代表 10 – 15; 以 0x 或者 0X 开头。
示例:
0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7
整型数据占用 4 字节的空间, 其数值范围介于 -2147483648 ~ 2147483647 之间。 如果超
出这个范围,则视为无效。
Literal constants  字面常量
 
任何带单引号的单一字符或者十六进制的 ASCII 码如 ‘/x10’ 都是字符数据。一些特殊的字
符如单引号(‘)、双引号(“)、问号(?)、反斜线(/)和控制符必须以反斜线开头(/), 组合表达原
来的意思,如下表所示:
换行 NL (LF) /n
制表符 HT /t
回车 CR /r
反斜线 / //
单引号 ‘ /’
双引号 ” /”
十六进制 ASCII hh /xhh
如果上述字符不使用反斜线,结果将不被定义:
int a = ‘A’;
int b = ‘$’;
int c = ‘©’; // 代码 0xA9
int d = ‘/xAE’; //货币对代码 ®
字符数据占用 4 字节的空间。其数值范围介于 0 ~ 255 之间。如果超出这个范围,则视为无效。
Boolean constants  布尔常量
 
Boolean 用来表示 是 和 否, 还可以用数字 1 和 0 进行表示。True 和 Flase 可以忽略大小
写。
示例:
bool a = true;
bool b = false;
bool c = 1;
它的十进制表示一个长度为 4-byte 的整数值。Boolean 常数可以表示 0 或 1 值。
Floating-point number constants (double)) 浮点数常量 (双精度)
 
浮点型数据由整数部分、小数点(.)和小数部分组成,其中整数部分和小数部分为一系列十进
制数字。
示例:
double a = 12.111;
double b = -956.1007;
double c = 0.0001;
double d = 16;
浮点型数据 (双精度)占用 4 字节的空间。其数值范围介于 -1.7 * e-308 ~ 1.7 * e308 之间。
如果超出这个范围,则视为无效。
String constants  字符串常量
 
字符串数据是带有双引号的一连串 ASCII 字符 ,如: “Character constant”。
字符串数据是引号里的一组字符,如果字符串中需要插入一个双引号(“) 必须在它前面使用
反斜线(/)。 任何特殊字符都必须有前置的反斜线(/)才能在字符串中使用。 字符串可以容纳 0
到 255 个字符, 如果超过这个长度, 右边多余的字符将被忽略, 编译器也会有相应的警示。
示例 s:
“This is a character string”
“Copyright symbol /t/xA9”
“this line contains a line feed symbol /n”
“C://Program Files//MetaTrader 4”
“A” “1234567890” “0” “$”
字符串数据占用 8 个字节的空间。 其中第一部分为长的整型存储字符串缓冲区分布的长度。
第二部分是 32 位的存储字符串缓冲区的地址。
Color constants  颜色常数
 
颜色数据可以用三种方法表示: 字符数据、整型数据或者是颜色名(只能是 Web colors 中
已命名的).
字符数据的表达方法是用三个数字来表示三种主要颜色:红、绿、蓝的比例。 以 C 开头,
用单引号括住。数字的值在 0 ~ 255 之间按比例选取。
整数数据的表达方法使用十六进制或十进制数字。 十六进制数字如 0x00BBGGRR, 其中 RR
是红色的比例,GG 是绿色的比例,BB 是蓝色的比例。十进制数不能直接体现红绿蓝的比
例 ,而是十六进制数字的十进制表示方式。
特殊的颜色名可以参考 Web colors set 表。
示例:
// 字符数据
C’128,128,128′ // 灰色
C’0x00,0x00,0xFF’ // 蓝色
// 颜色名
Red
Yellow
Black
// 整型数据
0xFFFFFF // 白色
16777215 // 白色
0x008000 // 绿色
32768 // 绿色
颜色数据占用 4 字节的空间。第一个字节一般被忽略,后三个字节包含了红绿蓝的组成信
息。
Datetime constants  日期时间常数
 
日期时间数据由 6 个部分的字符组成:年、月、日、时、分、秒,以 D 开头, 用单引号
括起。日期(年、月、日)或者时间(时、分、秒)甚至两者一起都可以不用填写。 日期时间数
据开始于 1. 1. 1970 截止到 12.31. 2037
示例:
D’2004.01.01 00:00′ // 新年
D’1980.07.19 12:30:27′
D’19.07.1980 12:30:27′
D’19.07.1980 12′ //等于 D’1980.07.19 12:00:00′
D’01.01.2004′ //等于 D’01.01.2004 00:00:00′
D’12:30:27′ //等于 D'[编译日期] 12:30:27′
D” //等于 D'[编译日期] 00:00:00′
日期时间数据占用 4 字节空间长度的整型数值。 其值从 1970 年 1 月 00:00 开始以秒的形式
显示总数。
Data types  数据类型
 
所有的程序都依靠数据来运作,数据因目的不同可以有不同的类型 。比如,访问数组可以用整型数据,价格可以用双精度的浮点型数据。在 MQL 4 中没有专门用来标记货币值的数据类型。
不同的数据类型有不同的处理速度,整型数据是最快的。 双精度的数据处理需要额外的处理器, 所以处理浮点型数据比较复杂, 比处理整型数据慢一些。 字符串是处理速度最慢的,因为它要存取动态内存。
主要的数据类型如下:
  整型数据 (int)
  布尔数据 (bool)
  字符数据 (char)
  字符串数据 (string)
  浮点型数据 (double)
  颜色数据 (color)
  日期时间数据 (datetime)
color 和 datetime 可以使我们更清楚的区分图表中的内容,在 expert advisor 和 indicator
中经常使用这些数据类型。颜色和日期时间数据用整数来表示。int 和 double 都属于数值
(数字)型。
在表达式运算中使用强制的类型转换。
Type casting  类型转换
 
表达式中使用强制的数据转换,转换时类型的优先级如下:
int (bool,color,datetime);
double;
string;
在运算完成之前(除了数据已被定义的),数据会根据优先级被转换。当定义数据的操作完成
前 ,数据会转换成被定义的数据类型。
示例:
int i = 1 / 2; // 没有类型转换,结果为 0
int i = 1 / 2.0; // 表达式中有浮点型数据,但会转换成整型数据,结果为 0
double d = 1.0 / 2.0; // 没有类型转换,结果为 0.5
double d = 1 / 2.0; // 表达式计算的结果是浮点型数据,和定义的类型一样,结果为 0.5
double d = 1 / 2; // 表达式是整型数据的计算,然后被定义为浮点型数据,结果为 0.0
类型转换不但运用在常量中,还被运用在相应的变量中。
Integer constants  整数常量
 
十进制: 数字 0 – 9 ,包括负数。
示例:
12, 111, -956 1007
十六进制: 数字 0 – 9 , 字面 a – f 或者 A – F 代表 10 – 15; 以 0x 或者 0X 开头。
示例:
0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7
整型数据占用 4 字节的空间, 其数值范围介于 -2147483648 ~ 2147483647 之间。 如果超
出这个范围,则视为无效。
Literal constants  字面常量
 
任何带单引号的单一字符或者十六进制的 ASCII 码如 ‘/x10’ 都是字符数据。一些特殊的字
符如单引号(‘)、双引号(“)、问号(?)、反斜线(/)和控制符必须以反斜线开头(/), 组合表达原
来的意思,如下表所示:
换行 NL (LF) /n
制表符 HT /t
回车 CR /r
反斜线 / //
单引号 ‘ /’
双引号 ” /”
十六进制 ASCII hh /xhh
如果上述字符不使用反斜线,结果将不被定义:
int a = ‘A’;
int b = ‘$’;
int c = ‘©’; // 代码 0xA9
int d = ‘/xAE’; //货币对代码 ®
字符数据占用 4 字节的空间。其数值范围介于 0 ~ 255 之间。如果超出这个范围,则视为无效。
Boolean constants  布尔常量
 
Boolean 用来表示 是 和 否, 还可以用数字 1 和 0 进行表示。True 和 Flase 可以忽略大小
写。
示例:
bool a = true;
bool b = false;
bool c = 1;
它的十进制表示一个长度为 4-byte 的整数值。Boolean 常数可以表示 0 或 1 值。
Floating-point number constants (double)) 浮点数常量 (双精度)
 
浮点型数据由整数部分、小数点(.)和小数部分组成,其中整数部分和小数部分为一系列十进
制数字。
示例:
double a = 12.111;
double b = -956.1007;
double c = 0.0001;
double d = 16;
浮点型数据 (双精度)占用 4 字节的空间。其数值范围介于 -1.7 * e-308 ~ 1.7 * e308 之间。
如果超出这个范围,则视为无效。
String constants  字符串常量
 
字符串数据是带有双引号的一连串 ASCII 字符 ,如: “Character constant”。
字符串数据是引号里的一组字符,如果字符串中需要插入一个双引号(“) 必须在它前面使用
反斜线(/)。 任何特殊字符都必须有前置的反斜线(/)才能在字符串中使用。 字符串可以容纳 0
到 255 个字符, 如果超过这个长度, 右边多余的字符将被忽略, 编译器也会有相应的警示。
示例 s:
“This is a character string”
“Copyright symbol /t/xA9”
“this line contains a line feed symbol /n”
“C://Program Files//MetaTrader 4”
“A” “1234567890” “0” “$”
字符串数据占用 8 个字节的空间。 其中第一部分为长的整型存储字符串缓冲区分布的长度。
第二部分是 32 位的存储字符串缓冲区的地址。
Color constants  颜色常数
 
颜色数据可以用三种方法表示: 字符数据、整型数据或者是颜色名(只能是 Web colors 中
已命名的).
字符数据的表达方法是用三个数字来表示三种主要颜色:红、绿、蓝的比例。 以 C 开头,
用单引号括住。数字的值在 0 ~ 255 之间按比例选取。
整数数据的表达方法使用十六进制或十进制数字。 十六进制数字如 0x00BBGGRR, 其中 RR
是红色的比例,GG 是绿色的比例,BB 是蓝色的比例。十进制数不能直接体现红绿蓝的比
例 ,而是十六进制数字的十进制表示方式。
特殊的颜色名可以参考 Web colors set 表。
示例:
// 字符数据
C’128,128,128′ // 灰色
C’0x00,0x00,0xFF’ // 蓝色
// 颜色名
Red
Yellow
Black
// 整型数据
0xFFFFFF // 白色
16777215 // 白色
0x008000 // 绿色
32768 // 绿色
颜色数据占用 4 字节的空间。第一个字节一般被忽略,后三个字节包含了红绿蓝的组成信
息。
Datetime constants  日期时间常数
 
日期时间数据由 6 个部分的字符组成:年、月、日、时、分、秒,以 D 开头, 用单引号
括起。日期(年、月、日)或者时间(时、分、秒)甚至两者一起都可以不用填写。 日期时间数
据开始于 1. 1. 1970 截止到 12.31. 2037
示例:
D’2004.01.01 00:00′ // 新年
D’1980.07.19 12:30:27′
D’19.07.1980 12:30:27′
D’19.07.1980 12′ //等于 D’1980.07.19 12:00:00′
D’01.01.2004′ //等于 D’01.01.2004 00:00:00′
D’12:30:27′ //等于 D'[编译日期] 12:30:27′
D” //等于 D'[编译日期] 00:00:00′
日期时间数据占用 4 字节空间长度的整型数值。 其值从 1970 年 1 月 00:00 开始以秒的形式
显示总数。

風險提示

MyFxtops邁投所列信息僅供參考,不構成投資建議,也不代表任何形式的推薦或者誘導行為。MyFxtops邁投非外匯經紀商,不接觸妳的任何資金。 MYFXTOPS不保證客戶盈利,不承擔任何責任。從事外彙和差價合約等金融產品的槓桿交易具有高風險,損失有可能超過本金,請量力而行,入市前需充分了解潛在的風險。過去的交易成績並不代表以後的交易成績。依據各地區法律法規,MyFxtops邁投不向中國大陸、美國、加拿大、朝鮮居民提供服務。

邁投公眾號

聯繫我們

客服QQ:981617007
Email: service@myfxtop.com

MyFxtops 邁投