Hexadecimal to binary
От: olimp_20  
Дата: 06.09.15 11:12
Оценка:
Условие задачи
Задача на первый взгляд — очень-очень простая. Но не понятно: как из "14" получилось "10100"?
Ведь "1"-->1, "4"-->100 и ответ, как мне видится должен был быть 1100.
  Код — проходит приблизительно половину тестов
#include <stdio.h>

int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);

    char ch;
    int x;

    while(scanf("%c", &ch)!=-1 && ch!='\n'){//посимвольное чтение

        if('0'<=ch && ch<='9') x = ch - '0';//конвертация символа в число
        else x = ch - 'A' + 10;

                //анализ чисел для перевода в двоичное представление
        if(x<2) {printf("%d", x); continue;}

        if(x<4) {
            for(int i=1; i>=0; --i)
                printf("%d", (x>>i)%2 );
            continue;
        }

        if(x<8) {
        for(int i=2; i>=0; --i)
                printf("%d", (x>>i)%2 );
            continue;
        }

        for(int i=3; i>=0; --i)//для чисел от 8 до F
                printf("%d", (x>>i)%2 );
    }

    printf("\n");

    return 0;
}

Пожалуйста, подскажите: как "14" переводится в "10100", согласно условию задачи?
Re: Hexadecimal to binary
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 06.09.15 11:38
Оценка: 1 (1) +2
Здравствуйте, olimp_20, Вы писали:

_>Условие задачи

_>Задача на первый взгляд — очень-очень простая. Но не понятно: как из "14" получилось "10100"?
_>Ведь "1"-->1, "4"-->100 и ответ, как мне видится должен был быть 1100.

Предлагаю перевести число 11002 обратно в шестнадцатеричный вид. Лучше через промежуточный десятичный, чтобы снова в разрядах не запутаться.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: Hexadecimal to binary
От: olimp_20  
Дата: 06.09.15 13:07
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Предлагаю перевести число 11002 обратно в шестнадцатеричный вид. Лучше через промежуточный десятичный, чтобы снова в разрядах не запутаться.


Проще говоря, все цифры, кроме первой, имеют обязательное 4-битное представление...но все равно спасибо за ответ
Re: Hexadecimal to binary
От: ononim  
Дата: 06.09.15 17:40
Оценка:
_>Условие задачи
_>Задача на первый взгляд — очень-очень простая. Но не понятно: как из "14" получилось "10100"?
_>Ведь "1"-->1, "4"-->100 и ответ, как мне видится должен был быть 1100.

"1"-->0001, "4"-->0100
ответ -> 00010100 -> 10100
Как много веселых ребят, и все делают велосипед...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.