Форум: Форум C++Разное
Новые темы: 00
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перевод чисел из десятичной формы в двоичную?
 
 автор: in_mysql   (04.01.2007 в 15:42)
 
 

Каким образом можно перевести число из двоичной формы в десятичную?

  Ответить  
 
 автор: cheops   (04.01.2007 в 19:38)   письмо автору
 
   для: in_mysql   (04.01.2007 в 15:42)
 

Можно воспользоваться следующей программой
#include <iostream>
using namespace std;

int main()
{
  int number = 0;
  int counter = 0;
  cout << "Введите число ";
  cin >> number;
  char binary[80];

  do
  {
    if(number & 1) binary[counter++] = '1';
    else binary[counter++] = '0';
    number = number >> 1;
  } while(number);

  // Завершаем строку
  binary[counter++] = '\0';
  // Выводим строку в обратном порядке
  for(int i = strlen(binary); i; i--) cout << binary[i - 1];
  cout <<  endl;

  return 0;
}

  Ответить  
 
 автор: Евгений Петров   (04.01.2007 в 19:47)   письмо автору
 
   для: in_mysql   (04.01.2007 в 15:42)
 

Ручками :) Что то вроде такого...
#include <iostream>
#include <string.h>

using namespace std;

int bin_to_dec(char * s)
{
int l = strlen(s);
int r = 0;

for(int i = 0; i < l; i++)
{
r <<= 1;
r += s[i] - 0x30;
}

return r;
}
void main(void)
{
char * s = "11111111";
cout << bin_to_dec(s);
}

  Ответить  
 
 автор: Евгений Петров   (04.01.2007 в 19:48)   письмо автору
 
   для: in_mysql   (04.01.2007 в 15:42)
 

Стойте! Вам из какой в какую надо было? :)

  Ответить  
 
 автор: Евгений Петров   (04.01.2007 в 19:52)   письмо автору
 
   для: Евгений Петров   (04.01.2007 в 19:48)
 

Обратно ещё проще. В 3-м параметре ф-ии _itoa указывается система счисления.

#include <iostream>
#include <stdlib.h>

using namespace std;

void main(void)
{
char * s = new char;
_itoa(255, s, 2);
cout << s;
}

  Ответить  
 
 автор: in_mysql   (08.01.2007 в 03:03)
 
   для: Евгений Петров   (04.01.2007 в 19:52)
 

Спасибо, у вас самый компактный вариант из того, что мне встречался :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования