51单片机数据类型及范围

我们可以通过使用sizeof关键字和软件仿真来进行查看数据类型所占的字节数。

sizeof是c语言的一个关键字,是在编译过程中就已经运算好的,已经放在内存中了,作用是判断数据类型或变量所占字节数。

以下是51单片机中的数据类型,及sizeof关键字对其进行计算。

#include "reg52.h"

unsigned char size_u8 = sizeof(unsigned char);
//u8取值范围:0~255,占用1字节

unsigned char size_s8 = sizeof(char); 
//s8取值范围:-128~127,占用1字节

unsigned char size_u16 = sizeof(unsigned int); 
//u16取值范围:0~65535,占用2字节

unsigned char size_s16 = sizeof(int);
//s16取值范围:-32768~32767,占用2字节

unsigned char size_u32 = sizeof(unsigned long); 
//u32取值范围:0~0xFFFF FFFF,占用4字节

unsigned char size_s32 = sizeof(long);
//s32占用4字节

unsigned char size_float = sizeof(float);
//在51单片机中,float和double是一样的,都是占用4字节

unsigned char size_double= sizeof(double);

//51单片机特殊的数据类型
sbit led = P0^0; 
//位寻址,可以对寄存器进行位(一个Bit)赋值。1个字节等于8个比特,即 1Byte=8Bit

void main(void)
{
	// P0 = 0x55; 
	//字节寻址,对寄存器进行一个字节(Byte)的赋值
}

51单片机与c语言不同,有一个特殊的数据类型sbit,可以对寄存器进行位寻址,可以对寄存器单独的某一个位进行赋值。

 下图是软件仿真界面,可以从watch窗口中查看定义的变量所占的字节数以及所对应的数值。也可以直接光标移动到变量上,即可查看所占字节数。

由于sizeof是直接在编译时就已经运算好的,所以程序不需要run就可以直接在软件仿真界面看到结果。 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值