找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3165|回复: 9
收起左侧

以下这段单片机语句是什么意思?为什么可以显示0-9的随机数

  [复制链接]
ID:459200 发表于 2019-1-20 16:43 | 显示全部楼层 |阅读模式
20黑币
void randmaker()
{
uint ran;
ran=rand();
dis1[0]=ran/10000+0x30;
dis1[1]=ran%10000/1000+0x30;
dis1[2]=ran%1000/100+0x30;
dis1[3]=ran%100/10+0x30;
dis1[4]=ran%10+0x30;
ran=rand();
dis1[5]=ran/10000+0x30;
dis1[6]=ran%10000/1000+0x30;
dis1[7]=ran%1000/100+0x30;
dis1[8]=ran%100/10+0x30;
dis1[9]=ran%10+0x30;
}


回复

使用道具 举报

ID:469417 发表于 2019-1-20 22:55 | 显示全部楼层
ran=rand();是产生随机数函数,假如通过该函数现在产生了一个数字1234,为了在相应的位置上显示出来,1234是不是要这样分解?

dis1[0]=ran/10000
dis1[1]=ran%10000/1000
dis1[2]=ran%1000/100
dis1[3]=ran%100/10
dis1[4]=ran%10
那个后面+0x30是在lcd中1602中特有的,0x30表示的是0, 0x31表示的是1 ......如此而己!见意去看看lcd1602的规格书

评分

参与人数 5黑币 +92 收起 理由
jinsheng7533967 + 35 绝世好帖!
Trump1438 + 15 绝世好帖!
yoxi + 15 赞一个!
Sawardeakar + 15 很给力!
#include51.h + 12 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:7485 发表于 2019-1-21 08:22 | 显示全部楼层
就这一段程序是产生不了“随机数”的。只是将另外的程序(你没贴出来)已经产生的随机数的每一位分开并送显示。
回复

使用道具 举报

ID:164602 发表于 2019-1-21 08:24 | 显示全部楼层
刀刀见红 发表于 2019-1-20 22:55
ran=rand();是产生随机数函数,假如通过该函数现在产生了一个数字1234,为了在相应的位置上显示出来,1234 ...

补充一句:
+0x30,不是1602独有的,这是转换为ASCII码,当然,1602的显示字符ASCII码是标准的,所以要这样转换。
回复

使用道具 举报

ID:449525 发表于 2019-1-21 11:30 | 显示全部楼层
rand是函数库里面的产生随机数函数接口,就是产生一个随机数。
后面就是取上面千位,百位,十位,在已ASCII形式显示出来
回复

使用道具 举报

ID:168777 发表于 2019-1-21 11:45 | 显示全部楼层
rand()是随机数获取的函数  把随机数返回值赋给ran变量
对ran整数进行分解,把整数的各个位上的数字分解出来保存到数组dis1中
字符“1”的ASCII码就是0x31,后面+0x30就是把数字转换成ASCII码
回复

使用道具 举报

ID:469932 发表于 2019-1-21 12:13 | 显示全部楼层
ahshmj 发表于 2019-1-21 08:22
就这一段程序是产生不了“随机数”的。只是将另外的程序(你没贴出来)已经产生的随机数的每一位分开并送显 ...

一看就二,ran=rand();就是能产生随机数,更本就不要另外的程序,这是函数库的函数。只要加了头文件#include<stdlib.h>就行!+0x30是在lcd中1602中特有的,其它LCD都不这么显示,就是告诉了别人LCD1602与众不同,别人想再深入可以看相关资就行。这就是所谓点到为止!

评分

参与人数 5黑币 +88 收起 理由
Trump1438 + 15 很给力!
jinsheng7533967 + 35 很给力!
#include51.h + 15
shuisheng + 15 很给力!
刀刀见红 + 8 很给力!

查看全部评分

回复

使用道具 举报

ID:444306 发表于 2019-1-21 13:26 | 显示全部楼层
Sawardeakar 发表于 2019-1-21 12:13
一看就二,ran=rand();就是能产生随机数,更本就不要另外的程序,这是函数库的函数。只要加了头文件#incl ...

这个观点很新颖。点到为止!有意思!

评分

参与人数 1黑币 +35 收起 理由
刀刀见红 + 35 很给力!

查看全部评分

回复

使用道具 举报

ID:471066 发表于 2019-1-21 14:00 | 显示全部楼层
Sawardeakar 发表于 2019-1-21 12:13
一看就二,ran=rand();就是能产生随机数,更本就不要另外的程序,这是函数库的函数。只要加了头文件#incl ...

说的很有深意!赞一个1

评分

参与人数 2黑币 +30 收起 理由
sheng7533967 + 15
Sawardeakar + 15 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:459200 发表于 2019-1-21 15:09 | 显示全部楼层
谢谢各位我明白了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表