Базовая конверсия - PullRequest
       1

Базовая конверсия

0 голосов
/ 29 сентября 2010

Я знаю обычное преобразование из oct_to_dec.Какой-нибудь умный способ?

Ответы [ 2 ]

1 голос
/ 29 сентября 2010

Было бы полезно узнать, ПОЧЕМУ вы хотите сделать это с помощью битовой маскировки, потому что иногда есть более эффективные способы решения вашей проблемы в целом, чем этот маленький запрос.

У меня такое ощущение, что это домашняя работа, так как поиск этой проблемы нашел меня на форумах с тем же запросом, что и домашняя работа. Если это домашнее задание, то, пожалуйста, пометьте его как домашнее задание, как вы делали с другим вопросом, который вы недавно задавали.

Мне удалось найти этот сайт благодаря Google Возможно, это поможет вам понять ...

void convertBase(int decimal) //Function that convert decimal to base of 8
{
  const int mask1 = (7 << 3);
  const int mask2 = (7 << 0);
  firstDigit = (decimal & mask1) + '0';
  secondDigit = (decimal & mask2) + '0';
  printf("Octal Representation of Binary Number: %d%d\n", firstDigit, secondDigit);
}
0 голосов
/ 29 сентября 2010

Эта функция читает восьмеричную строку и возвращает ее числовое значение.

int parse_octal(const char* s) {
  int r = 0;
  for ( ; *s; s++)
    r = (r << 3) | (*s & 7);
  return r;
}

Используется битовая маска для извлечения соответствующих битов значения ASCII.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...