Форум программистов, компьютерный форум CyberForum.ru

Перевести число из десятичной системы счисления в двоичную и обратно - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 70, средняя оценка - 4.77
SeryZone
 Аватар для SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
06.05.2012, 20:04     Перевести число из десятичной системы счисления в двоичную и обратно #1
Перевести число из десятичной СС в двоичную, отсортировать двоичное число по убыванию(сначала единицы потом нули), потом обратно в десятичную.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 20:04     Перевести число из десятичной системы счисления в двоичную и обратно
Посмотрите здесь:

Перевести натуральное число из десятичной системы в двоичную. C++
C++ Перевести число из десятичной системы в двоичную
C++ Перевод числа из десятичной системы счисления в двоичную.
C++ Перевод числа из десятичной системы счисления в двоичную
Учет погрешности при переводе числа из десятичной системы счисления в двоичную, а потом обратно C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
06.05.2012, 22:31     Перевести число из десятичной системы счисления в двоичную и обратно #2
А в каком виде вы хотите хранить двоичные числа? bool* ?
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
06.05.2012, 23:05     Перевести число из десятичной системы счисления в двоичную и обратно #3
Если по-простому std::bitset<>,std::sort(), в помощь, если нет- то придется делить на 2
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
06.05.2012, 23:13     Перевести число из десятичной системы счисления в двоичную и обратно #4
Ну, если я правильно понял, то задача как раз изобрести велосипед и написать это руками.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
07.05.2012, 00:13     Перевести число из десятичной системы счисления в двоичную и обратно #5
Ну если на быструю руку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//-------------------------------------------------------
void PrintBin(bool b[],int size)
 {
 for(int n=0;n<size;n++) std::cout<<b[n];
 std::cout<<std::endl;
 }
//-------------------------------------------------------
void DecToBin(int i,bool b[],int size)
 {
 for(int n=0;n<size;n++) b[size-1-n]= 1<<n & i;
 }
//-------------------------------------------------------
int BinToDec(bool b[],int size)
 {
 int i=0;
 for(int n=0;n<size;n++) i|= b[n]<<(size-1-n);
 return i;
 }
//-------------------------------------------------------
void SortBin(bool b[],int size)
 {
 int count=0;
 for(int n=0;n<size;n++)
   {
   if(b[n]) { b[n]=0; b[count++]=1;}
   }
 }
//-------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
int i=25;
const int size=8;
bool b[size];
 
DecToBin(i,b,size);
PrintBin(b,size);
std::cout<< BinToDec(b,size)<<std::endl;
 
SortBin(b,size);
PrintBin(b,size);
 
std::cout<< BinToDec(b,size)<<std::endl;
 
system("pause");
return 0;
}
//----------------------------------------------------------
Миниатюры
Перевести число из десятичной системы счисления в двоичную и обратно  
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
07.05.2012, 05:38     Перевести число из десятичной системы счисления в двоичную и обратно #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <climits>
 
void print( int n, char x, int size ) {
    std::cout << x << " = ";
    while ( size >= 0 )
        std::cout << (bool) ( n & ( 1 << size-- ) );
    std::cout << std::endl;
}
 
int main() {
 
    unsigned n = 224, k = 0;
    int size_n, size_k = sizeof( unsigned ) * CHAR_BIT - 1;
 
    size_n = size_k;
 
    while ( size_n >= 0 ) {
        if ( n & ( 1 << size_n-- ) )
            k ^= ( 1 << size_k-- );
    }
 
    print( n, 'n', (sizeof( unsigned ) * CHAR_BIT - 1) );
    print( k, 'k', (sizeof( unsigned ) * CHAR_BIT - 1) );
 
    return 0;
}
SeryZone
 Аватар для SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
01.06.2012, 20:51  [ТС]     Перевести число из десятичной системы счисления в двоичную и обратно #7
Вы не понимаете. Я ввожу с клавиатуры десятичное число. прога сортирует его двоичную структуру по убыванию. А выводится уже отсортированная структура в десятичном виде! Вот паскаль:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
type
  bin = array[1..50] of 0..1;
 
var
  a: bin;
  j, l, x,i: integer;
  n: int64;
 
 procedure BubbleSort(var A: bin; max: integer);
var
  i, j: Integer;
  x: integer;
begin
  for i := max downto 2 do
    for j := 2 to i do
      if A[j] < A[j - 1] then
      begin
        x := A[j];
        A[j] := A[j - 1];
        A[j - 1] := x;
      end;
end;
 
function pow(a, b: integer): integer;
var
  i: integer;
begin
  for i := 1 to b do
    a := a * a;
  pow := a;
end;
 
begin
  readln(n);
  while n > 0 do
  begin
    inc(l);
    a[l] := n mod 2;
    n := n div 2;
  end;
  for j := 2 to l do
    if A[j] < A[j - 1] then
    begin
      x := A[j];
      A[j] := A[j - 1];
      A[j - 1] := x;
    end;
  BubbleSort(a, l);
  n := 0;
  for i := l downto 0 do
    n := n + a[i + 1] * round(exp(ln(2) * i));
  writeln(n);
end.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2012, 22:22     Перевести число из десятичной системы счисления в двоичную и обратно
Еще ссылки по теме:

Как перевести с десятичной системы счисления в двоичную ? C++
Перевести целое число из десятичной системы счисления в двоичную, используя алгоритм деления на 2 C++
C++ Перевести с десятичной в двоичную систему счисления

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
01.06.2012, 22:22     Перевести число из десятичной системы счисления в двоичную и обратно #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <cmath>
 
 
int main() {
   unsigned int number,
                bit = 1 << sizeof( unsigned int ),
                oneBits = 0,
                zeroBits = 0,
                powerOfTwo;
   
   std::cin >> number;
   
   while ( !( bit & number ) && bit != 0 )
      bit >>= 1;
   
   while ( bit != 0 ) {
      if ( bit & number )
         oneBits++;
      else
         zeroBits++;
      
      bit >>= 1;
   }
   
   number = 0;
   
   powerOfTwo = std::pow( 2, zeroBits );
   
   while ( oneBits ) {
      number += powerOfTwo;
      oneBits--;
      powerOfTwo *= 2;
   }
   
   std::cout << number << std::endl;
   
   return 0;
}
Yandex
Объявления
01.06.2012, 22:22     Перевести число из десятичной системы счисления в двоичную и обратно
Ответ Создать тему
Опции темы

Текущее время: 00:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru