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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Oath24binder
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 6
#1

Сформировать в двоичном файле последовательность из N байтов - C++

24.04.2014, 18:32. Просмотров 824. Ответов 21
Метки нет (Все метки)

Сформировать в двоичном файле последовательность из N байтов следующего вида:
00000001 00000010 00000100 ... после 10000000 цикл замыкается.

Помогите, пожалуйста. Понятия не имею, как это делать.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pav1uxa
1788 / 1628 / 622
Регистрация: 23.01.2014
Сообщений: 5,906
Завершенные тесты: 1
24.04.2014, 18:46     Сформировать в двоичном файле последовательность из N байтов #2
Цитата Сообщение от Oath24binder Посмотреть сообщение
Сформировать в двоичном файле последовательность из N байтов следующего вида:
00000001 00000010 00000100 ... после 10000000 цикл замыкается.
C++
1
2
for (int i = 1; i < 100000000; i*=10)
    printf("%08d\r\n", i);
Вывод:
Код
00000001
00000010
00000100
00001000
00010000
00100000
01000000
10000000
IrineK
Заблокирован
24.04.2014, 18:49     Сформировать в двоичном файле последовательность из N байтов #3
Цитата Сообщение от Oath24binder Посмотреть сообщение
Понятия не имею
Ищем:
Побитовый сдвиг влево <<

Добавлено через 2 минуты
pav1uxa,
Читаем:
Цитата Сообщение от Oath24binder Посмотреть сообщение
последовательность из N байтов
int - это не 1 байт, а 4 (чаще всего)
pav1uxa
1788 / 1628 / 622
Регистрация: 23.01.2014
Сообщений: 5,906
Завершенные тесты: 1
24.04.2014, 19:02     Сформировать в двоичном файле последовательность из N байтов #4
Цитата Сообщение от IrineK Посмотреть сообщение
int - это не 1 байт, а 4 (чаще всего)
я вывел последовательность из N байтов (8 байт), по 8 бит в каждом. Причем тут тип переменной? Когда вы запишете в бинарный файл число 100 в двоичной (или 4 в шестнадцатиричной) для него это будет один байт - 00000100 в двоичной или 04 в шестнадцатиричной. Просто показал один из примеров вывода, а как из засунуть в бинарный файл это другой разговор. По поводу побитового сдвига тоже самое могу сказать - сдвигать можно и int.
IrineK
Заблокирован
24.04.2014, 19:11     Сформировать в двоичном файле последовательность из N байтов #5
Цитата Сообщение от pav1uxa Посмотреть сообщение
я вывел
Цитата Сообщение от pav1uxa Посмотреть сообщение
могу сказать
Советую все же покурить букварь.
Умножайте ваш int на 2.
Oath24binder
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 6
24.04.2014, 19:16  [ТС]     Сформировать в двоичном файле последовательность из N байтов #6
Поискал, всё равно не понял.
Всё же буду рад, если кто-то сделает или же подробно расскажет мне.
pav1uxa
1788 / 1628 / 622
Регистрация: 23.01.2014
Сообщений: 5,906
Завершенные тесты: 1
24.04.2014, 19:18     Сформировать в двоичном файле последовательность из N байтов #7
Цитата Сообщение от IrineK Посмотреть сообщение
Советую все же покурить букварь.
Умножайте ваш int на 2.
Спасибо, но я не курю. Зачем мне умножать мой int? Я показал вывод, он соответствует требованиям. На выходе имеем 8 байт (по 8 бит) в соответствии с условием.
IrineK
Заблокирован
24.04.2014, 19:21     Сформировать в двоичном файле последовательность из N байтов #8
Цитата Сообщение от pav1uxa Посмотреть сообщение
На выходе имеем 8 байт (по 8 бит)
Нет.
pav1uxa
1788 / 1628 / 622
Регистрация: 23.01.2014
Сообщений: 5,906
Завершенные тесты: 1
24.04.2014, 19:29     Сформировать в двоичном файле последовательность из N байтов #9
Цитата Сообщение от Oath24binder Посмотреть сообщение
Поискал, всё равно не понял.
Всё же буду рад, если кто-то сделает или же подробно расскажет мне.
Надо не искать, а пробовать что-то делать, потом вставлять сюда код и спрашивать почему не работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <windows.h>
#include <iostream>
int main() {
    FILE * f;
    f = fopen ("test4.bin", "wb");
    for (int i = 1; i < 256 ; i*=2)
        fputc(i, f);
    fclose (f);
    system("pause");
    return 0;
}
Как пример реализации, если нужен именно бинарный файл.
Цитата Сообщение от IrineK Посмотреть сообщение
Нет.
то есть
Код
00000001
00000010
00000100
00001000
00010000
00100000
01000000
10000000
По-вашему, это не 8 байт? Или в этих байтах не по 8 бит? Что именно тут не так?
IrineK
Заблокирован
24.04.2014, 19:45     Сформировать в двоичном файле последовательность из N байтов #10
Цитата Сообщение от pav1uxa Посмотреть сообщение
C++
1
for (int i = 1; i < 256 ; i*=2)
Вот на 2 и надо умножать, а не на 10
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
24.04.2014, 19:53     Сформировать в двоичном файле последовательность из N байтов #11
Цитата Сообщение от pav1uxa Посмотреть сообщение
то есть
нет не 8
Цитата Сообщение от pav1uxa Посмотреть сообщение
По-вашему, это не 8 байт? Или в этих байтах не по 8 бит? Что именно тут не так?
вот это
Цитата Сообщение от pav1uxa Посмотреть сообщение
int i = 1;
размер int это 4 байта (в 32 разрядных системах)
не веришь проверь
C++
1
sizeof (int)
размер 1 байт имеет тип char
IrineK
Заблокирован
24.04.2014, 19:59     Сформировать в двоичном файле последовательность из N байтов #12
pav1uxa,
а теперь посмотрите, что у вас получилось именно в файле.

Задача:
Цитата Сообщение от Oath24binder Посмотреть сообщение
00000001 00000010 00000100 ...
идущие подряд.
А что у вас?
pav1uxa
1788 / 1628 / 622
Регистрация: 23.01.2014
Сообщений: 5,906
Завершенные тесты: 1
24.04.2014, 20:25     Сформировать в двоичном файле последовательность из N байтов #13
Цитата Сообщение от ValeryS Посмотреть сообщение
размер int это 4 байта (в 32 разрядных системах)
не веришь проверь
Код
00000001
00000010
00000100
00001000
00010000
00100000
01000000
10000000
А где Вы в этих 8 строках увидели слово int, простите? Да и потом, в указанном мной примере int используется, однако формирует правильный файл длинной в 8 байт.

Цитата Сообщение от IrineK Посмотреть сообщение
а теперь посмотрите, что у вас получилось именно в файле.
А я и не говорил что там было готовое решение, я просто показал как вывести числа от 00000000 до 00000001. Хотелось чтобы человек сам подумал хоть чуть-чуть...
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
24.04.2014, 21:11     Сформировать в двоичном файле последовательность из N байтов #14
Цитата Сообщение от pav1uxa Посмотреть сообщение
А где Вы в этих 8 строках увидели слово int, простите?
а это что
Цитата Сообщение от pav1uxa Посмотреть сообщение
for (int i = 1; i < 256 ; i*=2)
если хотел показать принцип то писал бы хотя бы так
C++
1
for(unsigned char i=1;i;i*=2)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2014, 21:29     Сформировать в двоичном файле последовательность из N байтов
Еще ссылки по теме:
Как прочитать несколько байтов в файле с n-го байта по m-й байт ? C++
В заданном двоичном файле с целыми числами заменить нулями все чётные элементы C++
C++ Консольное приложение. В файле находятся только целые числа. Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину
C++ Сформировать последовательность по некоторому правилу
C++ Сформировать последовательность из элементов матрицы

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

Или воспользуйтесь поиском по форуму:
pav1uxa
1788 / 1628 / 622
Регистрация: 23.01.2014
Сообщений: 5,906
Завершенные тесты: 1
24.04.2014, 21:29     Сформировать в двоичном файле последовательность из N байтов #15
Цитата Сообщение от ValeryS Посмотреть сообщение
если хотел показать принцип то писал бы хотя бы так
Я писал не про это, а про первое мое сообщение. А это не принцип, это я уже готовый код выложил, который в соответствии с заданием создает файл и записывает в него 8 байт от 00000001 до 10000000. И прекрасно работает с int.

Надо наверное заканчивать это, соглашусь с тем что я ошибся, приношу извинения за флуд...
Yandex
Объявления
24.04.2014, 21:29     Сформировать в двоичном файле последовательность из N байтов
Ответ Создать тему
Опции темы

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