配列を整数に変換する方法はありますか、私は次の方法を持っていますが、うまくいかないようです:
int8_t x_array[18] = {0,1,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,1};
int32_t numb;
for (int8_t j=0;j<19;j++)
{
numb = numb + pow(2, i)*x_array[i];
}
これには理由がありますか??
PS:これは私が投稿した以前の質問からのフォローアップの質問です スイッチからの出力の結合 質問を編集して、提案された方法が機能しない理由を述べました。
本質的に、私がやろうとしているのは、シミュレータ ソフトウェアである RAPIDILITTE で、18 ビットのデジタル入力である PS 入力 (近接センサー システム) をミリ秒ごとにサンプリングするプログラムを作成することです。入力は、ポート 2 にあるトグル スイッチ 0 ~ 17 (18 ビット) によって表されます。入力は 0 ~ 9999 の間で正規化する必要があります)。
主な問題は、(以前に投稿された質問で述べた) 一度に 1 つのピンにしかアクセスできず、ポート全体を一度に読み取れないことです。ピンを読み取って1つの変数に結合し、それを自然数に変換してから入力を正規化する多くの方法を試しました。最後に、これを行う最善の方法は、各ピンの読み取り値を a に入れ、array[18]
これを変数に変換してから正規化することだと思います。