首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WINAVR中组合两个接收到的输入并将其作为一个整数读取?

如何在WINAVR中组合两个接收到的输入并将其作为一个整数读取?
EN

Stack Overflow用户
提问于 2010-11-01 18:24:37
回答 2查看 272关注 0票数 1

我希望用户使用c=ReceiveByte()命令输入2位数字。例如,我希望用户执行以下操作:

代码语言:javascript
复制
Enter 5
Enter 3
Output number 53 in ascii value on screen ( using hyperterminal )
Store number in a single array
Use that number for other loops etc.

我的代码草案是:

代码语言:javascript
复制
.
.
int c1[3];
c1[0]=ReceiveByte();
c1[1]=ReceiveByte();
.
.
for(i=0;i<3;i++)
 TransmitByte(c1[i]);
.
.

是这样的吗?或者我存储的2位数不正确?

非常感谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-01 18:36:57

对于输出,您不需要修改c1和c11,因为它们已经包含了输入的字符。在您的代码中,您只需确保c12包含有效字符,例如

代码语言:javascript
复制
c1[2] = '\n';

顺便说一句,如果您需要将输入的数字转换为int:

代码语言:javascript
复制
int num = (c1[0] - '0') * 10 + (c1[1] - '0');
票数 1
EN

Stack Overflow用户

发布于 2010-11-01 18:37:31

由于您似乎是从Receivebyte()函数接收字节,您应该将它们存储为字节(无符号字符),而不是整数,因为使用整数存储单个字节会浪费3个字节的内存。

否则,您的echo实现应该可以工作-即使您可能希望添加防止用户发送非数字字符的保护。

您必须将ASCII字符'5‘和'3’(ASCII代码53和51)转换为它们的数值(在ASCII编码方案中,从48到57的范围内的每个数字减去48 )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4068080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档