c51单片机流水灯程序。求问大神他为什么把16进制数定义成unsign char #include

c51单片机流水灯程序。求问大神他为什么把16进制数定义成unsignchar#includereg52.h#defineuintunsignedint#defineuc... c51单片机流水灯程序。求问大神他为什么把16进制数定义成unsign char
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
void delayxms(uint xms);
uchar code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//流水灯数据表
void delayxms(uint xms)//xms延时函数
{
uint i,j;
for(i=xms;i0;i--)
for(j=113;j0;j--);
}
void main()//主函数
{
uchar i;
while(1)
{
for(i=0;i8;i++)
{
P1=tab[i];
delayxms(200);
P1=0xff;
}
}
}
展开
 我来答
小号很好使
推荐于2018-03-21 · TA获得超过457个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:114万
展开全部
你把十六进制和16bit(16位)的概念搞混了。
同一个数字,可以用10进制表示、也可以用16进制表示,当然二进制、8进制等都可以,甚至你自己造个12进制都没问题。
比如你给一个变量a赋值为0xfe,a=0xfe,这个效果与下面这2种完全一样,看准了,是完全完全完全一样!!对单片机来说没有任何影响:
一、 a=254,(十进制的254等于16进制的fe)
二、 a=0376(八进制的376等于16进制的fe等于10进制254)
懂了没?
16进制数不一定需要16比特来存放,只要这个数对应的10进制数不超过255,(或者说不超过十六进制的0xff,或者说不超过8进制的377),它就卡一存放在uchar格式的变量里。
更多追问追答
追问
但是 比如我给仅仅给P1管脚附1。但是其他管脚连的灯也亮了,,其实我最大的问题是。比如我p0-7 共八个管脚。 八个灯。每个灯代表1bit格子。的话。我想操作一个变量的位。
谢谢您啊。 麻烦您了
匿名用户
2014-04-02
展开全部
c51单片机流水灯程序。求问大神他为什么把16进制数定义成unsign char
----------那我反问下,为什么不可以? unsigned char 只是类型而已。只要<=255即可。 你可以写十进制,二进制,8进制。只要编译软件能识别即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangzhcheng
2014-04-02
知道答主
回答量:35
采纳率:0%
帮助的人:17.7万
展开全部
支持楼上的回答 楼主可能搞混了16进制和16位的概念, char或者unsigned char只是类型,和int float等一样,只是每种类型占用的存储空间不一样,16进制或者十进制这些只是数字的表现方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式