こんにちは私はかなり新しいですが、私はプログラムのためにバイナリ文字列を10進数に変換する必要があります。ここに私の現在のコードです:ここ奇妙な結果を与えるcのバイナリから10進アルゴリズム
int BinaryToInt(char *binaryString)
{
int decimal = 0;
int len = strlen(binaryString);
for(int i = 0; i < len; i++)
{
if(binaryString[i] == '1')
decimal += 2^((len - 1) - i);
printf("i is %i and dec is %i and the char is %c but the length is %i\n", i, decimal, binaryString[i], len);
}
return decimal;
}
int main(int argc, char **argv)
{
printf("%i", BinaryToInt("10000000"));
}
と出力されます:
i is 0 and dec is 5 and the char is 1 but the length is 8
i is 1 and dec is 5 and the char is 0 but the length is 8
i is 2 and dec is 5 and the char is 0 but the length is 8
i is 3 and dec is 5 and the char is 0 but the length is 8
i is 4 and dec is 5 and the char is 0 but the length is 8
i is 5 and dec is 5 and the char is 0 but the length is 8
i is 6 and dec is 5 and the char is 0 but the length is 8
i is 7 and dec is 5 and the char is 0 but the length is 8
5
私はこれが動作しない理由として困惑している、すべてのヘルプは大歓迎です。前もって感謝します!
シモンズ:私はそうCはちょうど私が^
オペレータは、べき乗のためではなく、ビット単位のXOR演算子です
*手のひらを顔に当てる*あまりにも使われ、助けに感謝します! –