极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10486|回复: 6

為什麼是 6, 而不是 7 ?

[复制链接]
发表于 2012-12-6 20:59:43 | 显示全部楼层 |阅读模式
本帖最后由 pizg 于 2012-12-20 13:20 编辑

請問各位前輩,
下面代碼print出來的結果為什麼是 6, 而不是 7 ?

int B[]={1,1,1,0,0,0,0,0,0,0};

void setup() {
  Serial.begin(9600);
  int n = sizeof(B) / 2;
  int BT = 0;
  for(int i=0;i < n; i++) {
    BT = BT + B * pow(2, i);
  }
  Serial.println(BT);
}

void loop() {
}
回复

使用道具 举报

发表于 2012-12-7 12:57:22 | 显示全部楼层
void setup() {
  Serial.begin(9600);
  int n = sizeof(B) / 2;
  int BT = 0;
  for(int i=0;i < n; i++) {
    BT = BT + B[i] * pow(2, i);
    Serial.println(BT);  //逐个打印出来看看
  }
  Serial.println(BT);
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-7 17:24:40 | 显示全部楼层
yyy_zc 发表于 2012-12-7 12:57
void setup() {
  Serial.begin(9600);
  int n = sizeof(B) / 2;

感謝你的回覆.

我也逐個打印看過了,
但它就是6.
回复 支持 反对

使用道具 举报

发表于 2012-12-7 18:06:46 | 显示全部楼层
本帖最后由 histamine 于 2012-12-7 18:12 编辑

搞错了 先编辑掉
回复 支持 反对

使用道具 举报

发表于 2012-12-15 21:51:12 | 显示全部楼层
pow的return是float, 但是B是int
把int B;改成float B;就好了
測試過沒問題
想要int 最後再加上(int)做轉換就好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-19 00:07:08 | 显示全部楼层
本帖最后由 pizg 于 2012-12-19 00:40 编辑
jack4904 发表于 2012-12-15 21:51
pow的return是float, 但是B是int
把int B;改成float B;就好了
測試過沒問題


感謝您的回覆.
您可否把測試通過的代碼貼上來,
因為我試了很久還是不會修改,
感謝.


我後來自己寫了一個 pow function 問題就解決了,
為了報答您, 我把代碼貼上與您分享:

int B[]={1,1,1,0,0,0,0,0,0,0};

int myPow(int a, int b) {
   int c;
   for(int i=0; i<=b;i++) {
     if (i == 0)
       c = 1;
     else if (i == 1)
       c = a;
     else  
       c *= a;
   }     
   return c;
}  

void setup() {
   Serial.begin(9600);
   int n = sizeof(B) / 2;
   int BT = 0;
   for(int i=0;i < n; i++) {
     BT = BT + B * myPow(2, i);
   }
  Serial.println(BT);   
}

void loop() { }
回复 支持 反对

使用道具 举报

发表于 2012-12-19 21:02:45 | 显示全部楼层
int B[]={1,1,1,0,0,0,0,0,0,0};

void setup() {
  Serial.begin(9600);
  int n = sizeof(B) / 2;
  float BT = 0;   //改這行
  for(int i=0;i < n; i++) {
    BT = BT + B[i] * pow(2, i);
  }
  Serial.println(BT);
}

void loop() {
}
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-8 02:45 , Processed in 0.044575 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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