powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Биты, потоки и др.
25 сообщений из 61, страница 2 из 3
Биты, потоки и др.
    #39476632
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoТолько этим отличаются?Ты на Хабре забанен?
Анатомия программы в памяти
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39476674
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoОтличаются. Каждый процесс имеет свое адресное пространство, поэтому указатель между процессами не передать.
Только этим отличаются?
Хочешь подробностей - читай книги. Например Джеффри Рихтер "Windows via C/C++. Программирование на языке Visual C++"
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39476729
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoИменно это я и спрашивал: почему бессмысленно.
....
Просто возьми и исправь мой пример, который работает с int, что бы он корректно работал с double. А потом, что бы понять, почему же он все равно не работает... начни ломать себе мозг разными представленными чисел в 10 и 2'ой системе счисления и разными бесконечными дробями в этих двух системах:

Код: sql
1.
2.
3.
4.
5.
double a;
a=(double)10.0 / (double)3.0 ;
if (a == 3 ) {
  println('Hello world!');
}


С чем нужно сравнить a, что бы понять, что строчкой выше 10 делили на 3 ?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477043
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джеффри Рихтер "Windows via C/C++. Программирование на языке Visual C++"
rdb_dev Анатомия программы в памяти
Спасибо за ссылки, хабр просмотрел, книгу пролистал, в книге перессказ функций WINAPI.
Правильно я понял, что даже у C++17 отсутствует возможность управления многопроцессностью, поскольку тут уже играют роль особенности ОС, поэтому приходится пользоваться присущими ОС функциями (WINAPI для Windows)?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477044
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevС чем нужно сравнить a, что бы понять, что строчкой выше 10 делили на 3 ?
Не знаю, с чем, я лишь спрашивал, почему проверки на равенство для int и double разные
Код: plaintext
1.
2.
i1 == i2; // для int
abs(d1 - d2) < 0.00000001; // для double
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477050
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoя лишь спрашивал, почему проверки на равенство для int и double разные


Потому что не все диапазоны вещественных чисел представимы в точном виде.

Код: plaintext
1.
2.
3.
4.
5.
6.
double d;

for (d = 0; d < 1; d += 0.1)
    std::cout << d << std::endl;

std :: cout << std::boolalpha << (d == 1) << std::endl;



Казалось бы, должно вывестись 10 чисел и после выполнения цикла значение d должно быть 0.9.
Однако выводится 11 чисел. В конце единица. Стало быть d == 1? Но нет! Сравнение с единицей выдаёт false!
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
false


Если теперь установить большую точность вывода, результат станет понятным (надеюсь):

Код: plaintext
1.
2.
3.
4.
for (d = 0; d < 1; d += 0.1)
    std::cout << std::fixed << std::setprecision(16) << d << std::endl;

std :: cout << std::boolalpha << (d == 1) << std::endl;



По ходу вычислений накопилась погрешность и в конце d вовсе не единица.

0.0000000000000000
0.1000000000000000
0.2000000000000000
0.3000000000000000
0.4000000000000000
0.5000000000000000
0.6000000000000000
0.7000000000000000
0.7999999999999999
0.8999999999999999
0.9999999999999999
false
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477104
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petalvik,
Кажется, понял. Сравнивать можно как угодно, только из-за накапливаемой погрешности результаты, одинаковые с точки зрения арифметики, могут оказаться различными в зависимости от последовательностей математических операций, в ходе которых были получены результаты, поэтому надо указывать приемлемую точность, но и она не спасёт, если результаты разные с точки зрения арифметики, но вписываются в указанную погрешность.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477124
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangopetalvik,
Кажется, понял. Сравнивать можно как угодно, только из-за накапливаемой погрешности результаты, одинаковые с точки зрения арифметики, могут оказаться различными в зависимости от последовательностей математических операций, в ходе которых были получены результаты, поэтому надо указывать приемлемую точность, но и она не спасёт, если результаты разные с точки зрения арифметики, но вписываются в указанную погрешность.

Насколько у меня в голове "слушок", в математике есть целый раздел науки, который занимается отдельно проблемой определения точности и погрешностей. Но никогда этим особо не интересовался, не нужно было.

Т.ч.
"и она не спасёт" - не верно, спасет
"результаты разные с точки зрения арифметики, но вписываются в указанную погрешность" - если погрешность выбрана "первая попавшаяся", то разумеется, при выполнение можно получить ошибку "первое попавшееся не попалось". Но с этой ошибкой, очень легко бороться! Просто достаточно взять "второе попавшееся" и, возможно, тогда повезет!

Даже в бухгалтерии, есть специальные правила и даже специальные счета для отслеживания ошибок вычисления. Т.ч. там тоже, никаких проблем нет, если не изобретать велосипед, а спросить у человека, разбирающегося в бухгалтерии, что с этим принято делать в конкретном случае. Ну и желательно для денег float не использовать, а использовать BCD.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477126
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Хорошо, с погрешностями разобрались. А нижеприведенное утверждение верно?

Правильно я понял, что даже у C++17 отсутствует возможность управления многопроцессностью, поскольку тут уже играют роль особенности ОС, поэтому приходится пользоваться присущими ОС функциями (WINAPI для Windows)?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477129
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoА нижеприведенное утверждение верно?

Нижеприведённое утверждение - бессмысленный набор слов, который невозможно подтвердить или
опровергнуть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477130
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пора заводить под С++17 отдельный форум.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477131
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, как без помощи функций ОС в С++ можно получить универсальный (независимый от ОС, хотя бы для основных ОС) доступ к разделяемой памяти или к др. методам межпроцессного взаимодействия?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477136
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Команда printf это с "помощью ф-ций ОС" или нет?

Хорошо, как без помощи функций ОС...
Легко

1. Пишите программу на С, компилируете ее
2. Каким-то образом создаете бинарный образ для записи во flash ПЗУ материнской платы
3. Перегружаете компьютер... и ву а ля... все работает без помощи ОС !!!

Разумеется, перед этим хорошо бы где-то достать документацию по программированию BIOS для Вашей материнской платы. Где это сделать, я не знаю. Ни разу таким не интересовался.

Для старых компьютеров, типа IBM PC/XT с 8086, 8088 , 8186 процессором... можно было просто собрать .COM файл, купить специальное устройство "программатор", купить микросхему ПЗУ, записать туда файл, разобрать компьютер и заменить микросхему.

На современных компьютерах, все и проще (BIOS во Flash) и сложнее. Ни фига не понятно, где достать документацию и сколько документации нужно прочитать, что бы корректно включить современный процессор и материнскую плату в работу при включении компьютера ))

Ну и желательно, запастись парой десятков материнских плат для тестирования... боюсь, после таких экспериментов, при отладке, материнскую плату будет проще выбросить и взять новую )))
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477139
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoПравильно я понял, что даже у C++17 отсутствует возможность управления многопроцессностью, поскольку тут уже играют роль особенности ОС, поэтому приходится пользоваться присущими ОС функциями (WINAPI для Windows)?Чтобы правильно понять и не задавать подобные глупейшие вопросы, тебе, сначала, надо разобраться с тем, как работает процессор, что такое ассемблер и чем ассемблер отличается от C++.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477140
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoкак без помощи функций ОС в С++ можно получить универсальный (независимый от ОС, хотя бы
для основных ОС) доступ к разделяемой памяти или к др. методам межпроцессного взаимодействия?

Ты не поверишь, но без ОС процессов не бывает. Зря ты отказался читать Рихтера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477141
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

имелся ввиду именно универсальный доступ для большей части популярных ОС. Например, если бы способы работы с разделяемой памятью и соответствующие функции для неё являлись общими для Windows, Linux и других систем, то их бы, пожалуй, интегрированы в C++. Но они не интегрированы, значит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
Поправь, если ошибаюсь.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477142
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevКаким-то образом создаете бинарный образ для записи во flash ПЗУ материнской платы
зачем так жестоко, достаточно на диск/карту памяти записать
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477143
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoзначит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
полно такого кода. условной компиляцией достигается.три-четыре системы поддержать не особо сложно при наличии должной квалификации
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477144
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилполно такого кода. условной компиляцией достигается.
Это уже не универсальный код.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477145
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoИзопропилполно такого кода. условной компиляцией достигается.
Это уже не универсальный код.
с точки зрения бизнеса - универсальный
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477146
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoDimitry Sibiryakov,

имелся ввиду именно универсальный доступ для большей части популярных ОС. Например, если бы способы работы с разделяемой памятью и соответствующие функции для неё являлись общими для Windows, Linux и других систем, то их бы, пожалуй, интегрированы в C++. Но они не интегрированы, значит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
Поправь, если ошибаюсь.
Ошибаешься.

MS Visual C последних версий, конструкции для автоматического распараллеливания вычислений содержит.

Просто язык C, от Корниган и Ричь, нет. Просто было не нужно. Они такими глупостями не страдали.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477147
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoDimitry Sibiryakov,

имелся ввиду именно универсальный доступ для большей части популярных ОС. Например, если бы способы работы с разделяемой памятью и соответствующие функции для неё являлись общими для Windows, Linux и других систем, то их бы, пожалуй, интегрированы в C++. Но они не интегрированы, значит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
Поправь, если ошибаюсь.
Такие попытки предпринимались. Универсализм старых ЯП достигался за счет т.н. пре-процессора.
Ты писал код с проверками типа:
Код: plaintext
1.
#ifdef _WIN32


Позже, за счет библиотек, таких как Boost достигли большего универсализма.

Вообще в погоне за "универсализмом" были созданы платформы и соотв ЯП для них.
Если вы сильно хотите этого то вам лучше оставить С++ в покое.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477149
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
Если вы сильно хотите этого
Какие ЯП в порядке убывания "качества" тогда посоветуете?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477150
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
Если вы сильно хотите этого
Какие ЯП в порядке убывания актуальности и "качества" тогда посоветуете?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477152
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы писал код с проверками типа:
#ifdef _WIN32
Позже, за счет библиотек, таких как Boost достигли большего универсализма.

Те же проверки просто замели под коврик. Разницы никакой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 2 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Биты, потоки и др.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]