蓝桥杯扫盲之int, char, unsigned int, unsigned char的使用

本文介绍了C51编程中常用的几种数据类型,包括int, char, unsigned int和unsigned char。强调了C语言默认的数据类型规则,并讨论了选择数据类型时应考虑的因素,如正负数、数值范围、精度和数据种类。" 129845101,9364288,激活函数在神经网络中的应用与优缺点,"['机器学习', '深度学习', '神经网络', '非线性模型']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、C51常用数据类型

在这里插入图片描述

C语言中默认规则:short int 即为int,long int 即为 long,前面若无unsigned符号默认signed型。
0和1每一个所占空间是一位(b),也是单片机存储器中最小的单位。
1B(字节)=8b(位)

二、C语言数据类型选择

(1)正负数(有无符号)
(2)数值的范围;是否在范围内(上限,下限)
(3)数值的精度(整形,字符,实型)
(4)数据的种类(一种;多种(结构体,共用体))

### 蓝桥杯单片机中EEPROM存储`unsigned char`数据的方法 在蓝桥杯竞赛所使用的单片机项目里,为了实现对`unsigned char`类型数据的安全可靠保存,可以利用内部或者外部的EEPROM资源。对于大多数参赛选手而言,通常会接触到的是基于STC系列或其他具有内置EEPROM功能的MCU芯片。 当涉及到具体操作时,首先要初始化配置好相应的寄存器设置来启用EEPROM读写权限以及设定等待时间等参数[^1]: ```c #include <reg52.h> // 假设使用8051架构下的单片机头文件 sbit EEP_WE = P2^7; // 定义控制引脚用于使能/禁用写入操作 ``` 接着,在实际编程过程中可以通过调用库函数或编写自定义子程序完成针对特定地址位置上的字节级写入动作。下面给出一段简单的示例代码展示如何向指定地址处写入一个无符号字符型数值并随后从中读取出来验证结果是否一致: ```c void EEPROM_Write_Byte(unsigned int addr, unsigned char data){ EA=0; while(EECR & (1<<EEPE)); /* Wait for completion of previous write */ EEARL=(uint8_t)(addr); /* Set up address and data registers */ EEARH=(uint8_t)((addr>>8)&0xFF); EEDR=data; EECR |= (1 << EEMPE); /* Write logical one to EEMPE */ EECR |= (1 << EEPE ); /* Start eeprom write by setting EEPE */ EA=1; } unsigned char EEPROM_Read_Byte(unsigned int addr){ unsigned char rdata; EA=0; while(EECR&(1<<EEPE)); EEARL=(uint8_t)(addr); EEARH=(uint8_t)((addr>>8)&0xFF); EECR|=(1<<EERE); /*启动读周期*/ rdata=EEDR; EA=1; return(rdata); } ``` 上述代码片段展示了基本的操作流程,其中包含了必要的中断关闭(`EA=0`)以防止意外干扰导致的数据错误。需要注意的是不同型号单片机的具体指令集可能有所差异,因此建议参照官方手册调整相应语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值