Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
nilsonafter
0 / 0 / 1
Регистрация: 03.10.2017
Сообщений: 73
#1

Вывести битовое представление целого числа со знаком - C++

31.10.2017, 20:08. Просмотров 143. Ответов 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
40
41
42
43
44
45
46
47
48
    signed int b;
    signed int c;
    signed int d;
    int massiv[32]
    for (signed int b=0; b<=31;b++) {
        massiv[b]=1;
}
scanf("%d"&a);
a=c;
b=0;
d=-1;
   if (a==0)
{
    d=0;
    massiv[0]=0;
}
else {
    while(a!=0) {
        if (a%2==0) 
        {
            massiv[b]=0;
            if (c<0)
            massiv[b]=1;
            a=a/2;
        }
        b++;
        d++;
    }
    if(c <0){
        massiv[0]=massiv[0]++;
        for(b=0;b<=d;b++)
        {
            if(massiv[b]==2){
                massiv[b]=0;
                if(b!=d)
                massiv[b+1]=massiv[b+1]++;
            }
            
        }
        d=31;
    }
}
for(d;d>=0;d--)
printf("%d",massiv[d]);
printf("\n");
getchar();
return 0;
}

ошибки :
1>c:\users\777\searches\desktop\для учебы\информатика\stroki\stroki\stroki.cpp(9): error C2143: синтаксическая ошибка: отсутствие ";" перед "for"
1>c:\users\777\searches\desktop\для учебы\информатика\stroki\stroki\stroki.cpp(12): error C2296: &: недопустимо, левый операнд имеет тип "const char [3]"
http://www.cyberforum.ru/cpp-beginners/thread1304823.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2017, 20:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести битовое представление целого числа со знаком (C++):

Битовое представление вещественного числа, ошибка в коде
#include &lt;iostream&gt; using namespace std; void binary (double x); ...

Инвертировать десятичное представление целого числа
int main(int argc, char *argv) { int n,i; printf(&quot;enter n:\n&quot;);...

Битовое представление
Как можно получить любой файл в виде массива бит (именно бит, не байт) чтобы...

Битовое представление
Здравствуйте! Напишите пример функции, которая принимает целое число и выводит...

Получить двоичное строковое представление целого неотрицательного числа
Помогите пожалуйста с программой, очень надо. Описать функцию DecToBin(N)...

8
Байт
Эксперт C
17759 / 11784 / 2448
Регистрация: 24.12.2010
Сообщений: 23,694
31.10.2017, 20:10 #2
nilsonafter, это какой-то случайный кусок кода?
0
Herji
288 / 200 / 173
Регистрация: 11.05.2016
Сообщений: 658
Завершенные тесты: 1
31.10.2017, 20:11 #3
Вы бы написали, для начала, что оно теоретически делать должно
0
nilsonafter
0 / 0 / 1
Регистрация: 03.10.2017
Сообщений: 73
31.10.2017, 20:13  [ТС] #4
Herji, Вывести битовое представление целого числа со знаком

Добавлено через 19 секунд
Байт,
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
#include <stdio.h>
#include <conio.h>
int main () 
{
    const int SIZE=32;
    int a, i, copy, m;
    int A[32];
    for (int i=0; i<SIZE;i++)
        A[i]=1;
    puts("a=?");
    scanf_s("%d",&a);
    copy=a;
    i=0;
    m=-1;
    if (a==0)
    {
        m=0;
        A[0]=0;
    }else
    {
        while(a!=0) 
        {
            if (a%2==0) 
            {
                A[i]=0;
                if (copy<0)
                    A[i]=1;
            }
            a/=2;
            i++;
            m++;
        }
        if( copy<0)
        {
            A[0]=A[0]+1;
            for(i=0;i<=m;i++)
            {
                if(A[i]==2)
                {
                    A[i]=0;
                    if(i!=m)
                        A[i+1]=A[i+1]+1;
                }
 
            }
            m=SIZE-1;
        }
    }
    for(m;m>=0;m--)
        printf("%d",A[m]);
    printf("\n");
    getch();
    return 0;
}
0
Herji
288 / 200 / 173
Регистрация: 11.05.2016
Сообщений: 658
Завершенные тесты: 1
31.10.2017, 20:16 #5
http://www.cyberforum.ru/c-beginners/thread2045502-page2.html
0
nilsonafter
0 / 0 / 1
Регистрация: 03.10.2017
Сообщений: 73
31.10.2017, 20:17  [ТС] #6
Herji, я знаю, но там слишком умные способы. я хочу именно этот код переделать.
0
LVV
98 / 102 / 39
Регистрация: 15.02.2010
Сообщений: 394
01.11.2017, 05:00 #7
А может так?
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
//проверено в Visual Studio 2017
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int a;   //исходное число
    cin >> a;
 
    char z = '+';//знак числа
    if (a < 0)
    {
        z = '-';
        a = -a;
    }
 
    int r = 2;  //система счисления
    char b[32]; //буфер результата
    char *p;  //указатель на результат
    p = itoa(a, b, r); //преобразование в r-ичную систему счисления
    cout << z<< p << endl;//вывод символьной строки co знаком
 
    system("pause");
return 0;
}
0
nilsonafter
0 / 0 / 1
Регистрация: 03.10.2017
Сообщений: 73
01.11.2017, 17:50  [ТС] #8
LVV, это на с плюс плюс, а я на си работаю)
0
LVV
98 / 102 / 39
Регистрация: 15.02.2010
Сообщений: 394
02.11.2017, 06:59 #9
Цитата Сообщение от nilsonafter Посмотреть сообщение
LVV, это на с плюс плюс, а я на си работаю)
Для С - сюда: http://www.cyberforum.ru/c-beginners/
0
02.11.2017, 06:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2017, 06:59
Привет! Вот еще темы с решениями:

Битовое представление int const
Допустим int const i = -128. Но как узнать битовый вид перед тем как искать...

Битовое представление каждого байта
Вывести битовое представление каждого байта в интовой переменной. Прошу...

Описать функцию, возвращающую строковое представление целого неотрицательного числа
Описать функцию DecToHex(N) строкового типа, возвращающую строковое...

Определить, является ли симметричным двоичное представление длинного целого числа
Обработку двоичного числа делать без преобразование к строковому массиву,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru