PIC8位在PICC中的数据类型

来源:本站
导读:目前正在解读《PIC8位在PICC中的数据类型》的相关信息,《PIC8位在PICC中的数据类型》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《PIC8位在PICC中的数据类型》的详细说明。
简介:PIC8位MCU的内存都是8位字节结构的,所以PICC中对于数据的划分都是以8位为基础的。

在汇编中,我们对一个地址为0X20的内存附值:

movlw 255;

movwf 0x20;

但一个内存是8位结构,能表示最大的数是255。要是超过了会怎么样呢?

movlw 256;

movwf 0x20;

通过DEBUG后,可以看出0X20中的值不是256,而是0了。

这里可以看出PIC处理器计算过程是当计算结果超过内存能容纳的最大数(也就是所谓溢出),则自动抛弃最高位。

如下:

255 - 256

11111111-100000000

256的2进制有9位,于是PIC处理器就自动抛弃最高位1,剩下的8个0放入内存,于是就成了0了。这过程是由硬件自动完成的。

在PICC中象这样的概验比比都是。

如:char x;

for(x=255;x--;){;}

是完成255个循环。

要是for(x=256;x--;){;}

则是0个循环。

因为PICC中定义CHAR类型数据是8位。

再如:int x;

for(x=65537;x--){;}

则是只循环一次。因为PICC中INT数据是16位,占2个存储单位。

如上所述,在规划一个程序之前要考虑程序中可能涉及到的最大计算量来定义数据类型,不然将会发生溢出,导致数据混乱。

但也不可为了简便,全用长结构的类型来申明数据类型,不然会导致计算时间慢,空间占用多。

如X可能大于255,但不会大于65535,那么申明:unsigned int x;

如果X可能会是负数就一定要定义int x;

同上要是X可能大于65535,那么就得定义long x;

浮点数是一个很特殊的类型,不需要了解它的构造,只需要了解它是一个24位或32位的存储结构,是一个能表示小数的数据类型,浮点表示的数字范围极大,所以在用浮点类型时候,不需要考虑是否溢出的问题。

提醒:《PIC8位在PICC中的数据类型》最后刷新时间 2024-03-14 01:08:30,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《PIC8位在PICC中的数据类型》该内容的真实性请自行鉴别。