2 Áø¼ö¿­À» Á¤¼ö·Î º¯È¯ÇÑ´Ù


ÇÔ¼ö¸í
binsz2int  2 Áø¼ö¿­À» Á¤¼ö·Î º¯È¯ÇÑ´Ù
Çü½Ä
int binsz2int(char *str);
Àμö
str  2 Áø¼ö ASCIZ ij¸¯ÅÍ ¶óÀÎ
ÇÔ¼öÄ¡
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 Áø¼ö¿­À» Á¤¼ö¿¡ º¯È¯ÇÑ´Ù