0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 38
1

Результат в бинарном виде

17.10.2018, 19:15. Показов 1003. Ответов 9
Метки нет (Все метки)

каким образом в C можно перезаписать результат программы в бинарном или в же в другом виде?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2018, 19:15
Ответы с готовыми решениями:

Объявление числа в бинарном виде
Подскажите, пожалуйста! Нужно объявить что-то типо маски в бинарном виде. Но не знаю как это...

Открыть файл в бинарном виде
нужно считать данные из файла в бинарном виде. нельзя использовать библиотеку <fstream>, как это...

Открытия exeшника в бинарном виде
void main(void) { FILE * f = NULL; if(fopen("..\\debug\\ffffffff.exe", "r") == NULL) ...

запись vector в бинарном виде
есть что-то типа struct X { vector<Game*> v; }; int main() { X x; FILE*...

9
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
17.10.2018, 23:29 2
Ciupacabra, побитовые операции с числом нужно использовать для вывода результата. Но для этого придется написать небольшую функцию.
В других случаях , с этим прекрасно справляется printf() из stdio.h
0
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 38
18.10.2018, 16:40  [ТС] 3
Я понимаю, но проблема как раз в том что я не знаю как именно их преобразовать
0
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
18.10.2018, 21:31 4
Лучший ответ Сообщение было отмечено Ciupacabra как решение

Решение

Ciupacabra,
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
#include <stdio.h>
#include <stdlib.h>
 
char * toBin(int dec);
 
int main (void)
{
    int dec = 65536;
    
    printf("dec (%d) to bin = %s\n", dec, toBin(dec));
    return 0;
}
 
char * toBin(int dec)
{
    int bitCount = 0;
    for(int tmp = dec; tmp; tmp /= 2, bitCount++);
    
    char * bin = (char *)malloc(sizeof(char) * bitCount);
    *(bin+bitCount)=0;
    for(int i = 0; i < bitCount; i++)
    {
        *(bin+i) = ((dec >> (bitCount-i-1)) & 0x1) + '0';
    }
    return bin;
}
Код
dec (65536) to bin = 10000000000000000
Добавлено через 2 часа 26 минут
C
1
2
3
4
5
//... 
    int number = 65535;
    printf("Number %d (dec) -> %x (hex)\n", number, number);
    printf("Number %d (dec) -> %o (oct)", number, number);
//...
Код
Number 65535 (dec) -> ffff (hex)
Number 65535 (dec) -> 177777 (oct)
1
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 38
18.10.2018, 21:39  [ТС] 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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
char * toBin(int r);
 
int main (void)
{
     srand(time(NULL));
    int i, j, r;
    scanf("%d", &j);
    
    for(i=1;i<j;i++) {
        int r=rand()%50;
    printf("%d\n", r);
    }
    system("pause");    
 
    
    printf("r (%d) to bin = %s\n", r, toBin(r));
    return 0;
}
 
char * toBin(int r)
{
    int bitCount = 0;
    for(int tmp = r; tmp; tmp /= 2, bitCount++);
    
    char * bin = (char *)malloc(sizeof(char) * bitCount);
    *(bin+bitCount)=0;
    for(int i = 0; i < bitCount; i++)
    {
        *(bin+i) = ((r >> (bitCount-i-1)) & 0x1) + '0';
    }
    return bin;
}
Ну и получилась лепешка из двух частей
0
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
18.10.2018, 21:44 6
Ciupacabra,
ввести нужные числа уже при исполнении программы а не при ее редактировании
Куда ввести, какие числа , что с ними нужно сделать ? Каком редактировании ? О чем Вы?
С самого начала и по порядку. Цель программы, какие функции она должна выполнять и какой результат вы хотите видеть?
0
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 38
18.10.2018, 21:49  [ТС] 7
Эм, да простите. Самая главная моя цель было создание программы которая генерировало бы случайные числа а потом последний результат бы преоброзовало в двоичный код
0
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
18.10.2018, 21:59 8
Ciupacabra, не следует повторно объявлять переменную r. Такая автоматическая переменная создаётся в отдельной области памяти с идентичным именем, но новыми знаниями никак не связанными с внешней переменной r. Таким образом переменная r будет существовать только в теле цикла for. А переменная r тела main никогда и не была инициализирована и содержала мусор.

Также следует поставить паузу после выполнения всех операций.

А ещё рекомендую K&R Язык программирования Си.
исправлено

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
char * toBin(int r);
 
int main (void)
{
     srand(time(NULL));
    int i, j, r;
    scanf("%d", &j);
    
    for(i=1;i<j;i++) {
        r=rand()%50;
    printf("%d\n", r);
    }
    printf("r (%d) to bin = %s\n", r, toBin(r));
    return 0;
}
 
char * toBin(int r)
{
    int bitCount = 0;
    for(int tmp = r; tmp; tmp /= 2, bitCount++);
    
    char * bin = (char *)malloc(sizeof(char) * bitCount);
    *(bin+bitCount)=0;
    for(int i = 0; i < bitCount; i++)
    {
        *(bin+i) = ((r >> (bitCount-i-1)) & 0x1) + '0';
    }
    return bin;
}
0
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 38
18.10.2018, 22:07  [ТС] 9
Мда уж, а мне еще учиться и учиться. НО за помощь премногоблагодарен
0
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
18.10.2018, 22:17 10
Ciupacabra, учение длинною в жизнь!
А я буду благодарен за плюсик в карму
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2018, 22:17
Помогаю со студенческими работами здесь

Как считать файл в бинарном виде?
как считать абсолютно любой файл в бинарном виде (в виде двоичного кода) и записать эти данные,...

представление растрового изображения в бинарном виде
Добрый день имеется растровое изображение(jpg,png..etc), как средствами Qt преобразовать...

Чтение файла в бинарном виде ЧАСТЯМИ
Собственно вопрос в самом названии темы. Возможно ли читать файл функцией Open sFile For Binary As...

Как результат вывести не в виде матрице, а в виде таблицы?
Подскажите, плиз, как здесь результат вывести не в виде матрице, а в виде таблице. Ни как не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru