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

двоичный код - C++

Восстановить пароль Регистрация
 
Taftis
Pascal, Delphi, C++
 Аватар для Taftis
178 / 127 / 27
Регистрация: 01.12.2012
Сообщений: 626
25.09.2013, 09:32     двоичный код #1
В общем задание такое: вводим число, присвоиваем переменной, на эту перемменную указатель, и нужно вытащить побитово значение этой переменной в двоичном коде.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 09:32     двоичный код
Посмотрите здесь:

C++ Двоичный код символа
C++ Двоичный код числа
C++ Двоичный код
Преобразование в двоичный код С. C++
двоичный код C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
25.09.2013, 09:36     двоичный код #2
побитовый сдвиг и побитовое &
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
25.09.2013, 09:47     двоичный код #3
C++
1
2
3
int x = 1234;
for(int i=sizeof(int)-1; i>=0; i--) cout<<  (x>>i)&1;
cout <<endl;
Taftis
Pascal, Delphi, C++
 Аватар для Taftis
178 / 127 / 27
Регистрация: 01.12.2012
Сообщений: 626
25.09.2013, 12:47  [ТС]     двоичный код #4
Цитата Сообщение от Байт Посмотреть сообщение
Код C++
1
2
3
int x = 1234;
for(int i=sizeof(int)-1; i>=0; i--) cout<< *(x>>i)&1;
cout <<endl;
а можно всю программу целиком?

Добавлено через 2 часа 52 минуты
...
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
25.09.2013, 12:54     двоичный код #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
int main()
{
int x;
cin >> x;
 
//int x = 1234;
for(int i=sizeof(int)-1; i>=0; i--) cout<<  (x>>i)&1;
cout <<endl;
 
return 0;
}
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
25.09.2013, 13:10     двоичный код #6
SatanaXIII, по-моему, неверно, т. к. sizeof - это число байт, а не бит.
SatanaXIII
25.09.2013, 13:11
  #7

Не по теме:

Qwertiy, это код Байт. Я не вникал.

Но я ему доверяю.

Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
25.09.2013, 13:40     двоичный код #8
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Но я ему доверяю.
Зря. Во-первых, он даже не компилируется (в том числе из-за приоритетов оперуций в cout<< (x>>i)&1;), а во-вторых, я прав и выводятся только 4 биата.

Добавлено через 18 минут
Вот так - правильно:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <cstdio>
 
template <typename number> char * tobinary(number x, char *buf)
{
    number q;
    char *p=buf;
 
    if((number)~0<0)
    {
        *(p++) = '0' + (x<0);
        q = (number)1 << ((sizeof(number)<<3) - 2);
    }
    else
        q = (number)1 << ((sizeof(number)<<3) - 1);
 
    for(; q; q>>=1)
        *(p++) = x & q ? '1' : '0';
 
    *p = 0;
 
    return buf;
}
 
#define POSVAL 7
#define NEGVAL -7
 
int main(void)
{
    char temp[128];
 
    #define TEST(type,val) do { type x=val; puts(tobinary(x, temp)); } while(0)
 
    TEST(char, POSVAL);
    TEST(unsigned char, POSVAL);
    TEST(signed char, POSVAL);
 
    TEST(unsigned short, POSVAL);
    TEST(signed short, POSVAL);
 
    TEST(unsigned, POSVAL);
    TEST(signed, POSVAL);
 
    TEST(unsigned long, POSVAL);
    TEST(signed long, POSVAL);
 
    TEST(unsigned long long, POSVAL);
    TEST(signed long long, POSVAL);
 
    TEST(char, NEGVAL);
    TEST(unsigned char, NEGVAL);
    TEST(signed char, NEGVAL);
 
    TEST(unsigned short, NEGVAL);
    TEST(signed short, NEGVAL);
 
    TEST(unsigned, NEGVAL);
    TEST(signed, NEGVAL);
 
    TEST(unsigned long, NEGVAL);
    TEST(signed long, NEGVAL);
 
    TEST(unsigned long long, NEGVAL);
    TEST(signed long long, NEGVAL);
 
    #undef TEST
 
    getchar();
 
    return 0;
}
HedgehogLu
25.09.2013, 13:44
  #9

Не по теме:

а зачем то так сложно ?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 14:00     двоичный код
Еще ссылки по теме:

C++ Двоичный код Хоффмана
перевод десятичного вещественного в машинный код(двоичный код) C++
перевод в двоичный код C++

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

Или воспользуйтесь поиском по форуму:
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
25.09.2013, 14:00     двоичный код #10
Цитата Сообщение от HedgehogLu Посмотреть сообщение
а зачем то так сложно ?
Потому что просто уже было.
Yandex
Объявления
25.09.2013, 14:00     двоичный код
Ответ Создать тему
Опции темы

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