2進数列を整数に変換する


関数名
binsz2int  2進数列を整数に変換する
形式
int binsz2int(char *str);
引数
str  2進数 ASCIZ文字列
関数値
2進数列を表す整数
注意事項
整数のオーバーフローに注意すること。

用例(binsz2int-test.c
binsz2int("-1101");

プログラム(binsz2int.c
int binsz2int(char *str)
{
    int val;
    int sign;
    
    while (*str == ' ' || *str == '\t') str++;
    sign = 1;
    if (*str == '+') str++;
    else if (*str == '-') {
        sign = -1;
        str++;
    }
    val = 0;
    while (*str == '0' || *str == '1')
        val = (val << 1) + (*str++ - '0');

    return sign == 1 ? val : -val;
}
説明
2進数列の先頭から、まずスペースを読み飛ばす。 つぎに符号を処理して、2進数字の各桁を変換していく。

関連関数
整数を2進数列に変換する整数を10進数列へ変換する整数を16進数列へ変換する10進数列を整数へ変換する16進数列を整数へ変換する