单片机C语言,Keil问题

voidmain(){unsignedcharLed[8]={1,1,1,1,0,1,1,1}intoutput=0;inti_a;for(i_a=0;i_a<=7;i_... void main()
{
unsigned char Led[8]={1,1,1,1,0,1,1,1}
int output=0;
int i_a;
for (i_a=0;i_a<=7;i_a++)
{
output=output+Led[i_a]*(2^(7-i_a));
}

}

怎么结果output不等于247啊,我用VB算答案就是247

Private Sub Form_Load()
Dim Led
Led = Array(1, 1, 1, 1, 0, 1, 1, 1)
output = 0
For i = 0 To 7
output = output + Led(i) * (2 ^ (7 - i))
Next i
MsgBox output
End Sub
展开
 我来答
意法半导体(中国)投资有限公司 2020-01-15
展开全部
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
wolf_lhy
2013-06-16 · TA获得超过6609个赞
知道大有可为答主
回答量:1090
采纳率:66%
帮助的人:584万
展开全部
我先指出你一个严重的错误:
“ ^ "这个符号,在VB里面,表示的是次方符号,2 ^ 5表示2的5次方,而在C语言里,这个不表示次方符号,表示的是 “ 按位异或”操作。
这是你错误的根本所在。
追问
啥- -。。。。那次方是什么。。。,我刚学C,习惯了VB了,还以为C也是这样
追答
C语言里没有次方专用的运算符号,你可以自己写一个函数来做次方运算,也可以调用系统函数pow(float x,float y).
如果你要调用系统函数,那么,记得要包含 math.h头文件。
建议你自己写比较好。
比如:

unsigned long power(unsigned long x,unsigned char y)
{
unsigned long mul = 1;

unsigned char i;
for( i = 0;i<y;i++)
{
mul = mul * x;

}

return mul;
}

自己写,好处是我都定义成了整形的变量,而原函数是浮点型的,运算过程中,占用的资源比较大。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式