找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1112|回复: 4
打印 上一主题 下一主题
收起左侧

循环 1000次以上 怎么组合到一块

[复制链接]
跳转到指定楼层
楼主
ID:370407 发表于 2020-1-7 17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 363249 于 2020-1-7 20:20 编辑

a=0x09;  个十
b=0x09;  百千
c=0x09;  万

怎么组合
循环90909次

for(90909次)      




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:398709 发表于 2020-1-7 21:56 | 只看该作者
你这是一个字节分成两部分使用,这个之前没有遇到过,可以将这三个字节进行位移或者与运算后保存到6个变量中然后分别进行X10000+X1000+X100...这样的操作

例如:
       a=0x09;  个十
       A1=(0x09&0xf0)>>4;       //这个将个位保存到A1变量中
       A2=0x09&0x0f;                   //这个将十位保存到A2变量中

高四位数据需要移动到低位否则可能出错,没有具体实验只是猜测
以此类推  然后

B=A1+A2*10+A3*100+A4*1000+A5*10000;     //B变量存放整合的数据

最后for(i=0;i<B; i++)

只是提供一个思路,效率可能不是最好的还有一些可能有的错误这些就自己发掘修改吧
回复

使用道具 举报

板凳
ID:584814 发表于 2020-1-7 22:33 | 只看该作者
C语言中有float、double、long double等数据类型可供选用,也可以用多层循环来做。
回复

使用道具 举报

地板
ID:396245 发表于 2020-1-7 23:13 | 只看该作者
十六进制数0x12表示十进制21,这种表示方法与BCD码类似。只需要封装一个函数将其进行转码为常规的数就行了。
//  注意c的值得范围,代表的数不能超过60000,即c只能为0x00、0x10、0x20、0x30、0x40、0x50、0x60;
// 如需使用更大的数,需要将unsigned int换为unsigned long long,返回值处同换。
unsigned int h2d(unsigned char a, unsigned char b, unsigned char c,)
{

    a=(a/0x0f)+(a%0x0f)*10;    b=(b/0x0f)+(b%0x0f)*10;
    c=(c/0x0f)+(c%0x0f)*10;
    return (unsigned int)c*10000+(unsigned int)b*100+(unsigned int)a;
}

然后只需要调用这个函数就行了;
//为了不不改变原来abc的值,重新定义暂存变量
unsigned int hd;
hd=h2d(a, b, c);
while(hd--)
{
//需要循环执行的代码;
}
回复

使用道具 举报

5#
ID:341045 发表于 2020-1-13 16:21 | 只看该作者
u32 i;
for(i = 0; i < (c * 10000 + b * 100 + a); i ++)
{
   //循环程序
}

收工, 拿走不谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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