欢迎回到Digilent博客!
真的!布尔值是一种数据类型。然而,它也是电子世界中程序员假设其他人都知道他们在说什么的时候抛出的一个术语;我个人可以证明情况并非总是如此。有鉴于此,让我们来回顾一下编程中常用的一些数据类型。
但首先,什么是数据类型?从广义上说,数据类型是在计算机处理器或FPGA中表示不同类型信息的方法。今天我们将讨论布尔值、整数、字符和浮点数,所有这些通常被称为原始数据类型。还有其他类型的数据,称为复合数据类型,尽管这些数据类型通常只是原始数据类型的组合,例如数组.计算机处理器、微处理器和fpga都以二进制格式将这些数据类型存储为一系列的1和0。在计算机系统中,每个“1”或“0”(位)通常以8个字节为一组,构成一个字节。因为处理器将以这种字节格式进行通信,所以每一种数据类型,即使只需要表示一位,也将存储在一个字节中。
正如您可能已经猜到的,布尔值是一种表示“真”或“假”的数据类型。然而,当在计算机上存储信息时,没有硬件能够存储字面上的“真或假”,所以许多编程语言会将真值和假值等效为由高电压和低电压表示的数字“1”和“0”。这允许“真+真”等于“2”的潜在操作。我不知道这个有趣的事实在现实生活中到底有多有用,但是,嘿,有趣的事实仍然是有趣的!布尔值的真或假性质使它成为一种很好的方法来跟踪被触发的“开或关”或“左和右”。
字符,通常称为char,是一个位数组(在c++中为一个字节),它定义了符号的可视化表示。这些符号通常由ASCII表由你在键盘上看到的许多字符组成。从技术上讲,字符是一种复合数据类型,因为许多字符可以放在一起形成一个字符串(一系列字符),而且需要一个位数组(表示可以打开或关闭的像素)来显示每个字符。有了正确的资源,你也可以定义你自己的字符集显示“非标准”字符。
整数(通常简称为int)是在代码中存储数字的标准方式。它们能够存储各种各样的数字,包括二进制、十进制和十六进制数,并且不需要程序员进行任何特殊的处理来将一种类型的数字存储在int中另一种类型的数字上。在带有PIC32处理器的chipKIT™板上,整数是32位长,允许它们存储有符号(正数或负数)的- 2147,483,647到+ 2147,483,647之间的数字,无符号(正数)版本的0到4,294,967,295之间的数字。尽管本地32位长,可以声明一个整数,一个较小的值,如只有16位或8位处理器中为了节约空间,尽管这样做会以牺牲自然成倍缩短数量大小,这些整数可以接受。整数的限制是它们不能接受任何小数位。如果您试图给一个整型值31.96,它将只存储31。而0.96将被截短,这意味着它将被完全丢弃,没有任何舍入。
我要讲的最后一种数据类型是浮点数。这是一种能够接受带有小数点位的数字的数据类型。这种数据类型的工作方式是通过一种科学记数法;一个给定的数字的排列方式是,在小数点前有一个值,其余的有效数字在小数点后,32位中的8位用于表示该数字的大小。
在实际应用中,这相当于一个能够处理和跟踪大约七个小数点的“浮点数”。“double”类似于浮点数,不同的是它使用两组32位,总共64位(8个字节)。作为一个双精度浮点值(因此得名),它能够跟踪大约16位小数,允许更精确的计算,尽管涉及双精度浮点数的计算确实比浮点数花费更长的时间,因为它们在PIC32中占用了两个内存槽。幸运的是,当在Digilent的chipKIT板上以80mhz的频率运行时,这种时间差对于大多数应用来说是可以忽略的。
