|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||||||||||||||||||||||||||||||||||||
Порядок байт24.02.2020, 18:17. Показов 11022. Ответов 88
Метки нет (Все метки)
Здравствуйте,
Подскажите пожалуйста, вот есть:
Но, если сделать так:
То есть компьютер просматривает байты в int справо налево, противоположно привычно-человеческому слева направо ? :
Если да, то подскажите пожалуйста: 1)Но если сделать сдвиг бита << влево, то бит сдвигается влево. То есть bigendian, littleendian - влияет только на байты, а не биты внутри байта ? 2) bigendian, littleendian - зависит от ОС или от процессора ? И есть функция, как определить какая из этих штук действует условно на моем компе ?
0
|
|||||||||||||||||||||||||||||||||||||||||
| 24.02.2020, 18:17 | |
|
Ответы с готовыми решениями:
88
Порядок следования байт Порядок байт в union Порядок байт у числовой переменной |
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
||
| 26.02.2020, 22:30 | ||
|
Пока значение x влазит в диапазон представимых значений для char, чтение через x lvalue и через *((char*)&x) lvalue даёт одно и то же значение.Если значение не влазит в диапазон то при чтении *((char*)&x) будет UB.Так стандарт написан.
0
|
||
|
4139 / 2717 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
||||||||||||
| 27.02.2020, 10:55 | ||||||||||||
|
Скажем, что union позволяет хранить в одной и той же памяти разные типы данных, но не требует их одновременного использования. Например, в SDL (SDL_events.h) такое используется для вообще любых событий: выставляется флажок события, а остальные байты приводятся к той или иной структуре. Кликните здесь для просмотра всего текста
UB тут только в том, что неизвестно какой байт попадет в начало переменной. Они могут идти как 1234, могут как 4321, могут как 3412, да хоть 00001234.
0
|
||||||||||||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|||||||
| 27.02.2020, 12:41 | |||||||
А вот совать палки в колеса разработкам на одной и той же постоянной системе с кастами, как-то нехорошо. Размер в 4 байта был взят условно. В некоторых union, всегда 4 байта, например IN_ADDR ![]() Добавлено через 4 минуты Еще раз процитирую: ![]() Добавлено через 3 минуты Отсюда вывод, граждане: в данном контексте UB необходим, т.к. позволяет определить систему!
0
|
|||||||
|
4139 / 2717 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
||||
| 27.02.2020, 13:06 | ||||
|
При преобразовании int*->char* идет работа с указателями, а сами значения остаются неизменными. И значение по указателю уже будет зависеть от способа хранения. Мой-то пример был проще: если у нас есть объединение int и char[4], то если мы пишем в int, а читаем из char[], получаем UB. А если пишем в int, читаем из int, либо пишем в char[], читаем из char[] - вполне себе определенное поведение. Именно это и используется в SDL: одна и та же переменная может трактоваться как один из нескольких типов данных на выбор. При этом если перепутать тип при чтении - закономерно получишь мусор.
0
|
||||
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
| 27.02.2020, 18:02 | |
|
0
|
|
|
0 / 1 / 0
Регистрация: 10.07.2017
Сообщений: 8
|
|
| 27.02.2020, 18:17 | |
|
0
|
|
|
0 / 1 / 0
Регистрация: 10.07.2017
Сообщений: 8
|
|
| 27.02.2020, 18:41 | |
|
liv, меня интересовала ссылочка где описывается именно об не попадании в диапазон char. Как я понимаю, эта ситуация исходя из слов argcargv явно описана в стандарте и приводит к UB, я вот пока этого не нашел, хотел бы конкретную ссылочку.
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 27.02.2020, 18:45 | |
|
Я также внимательно слежу за этим вопросом...
0
|
|
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
||||||
| 27.02.2020, 20:15 | ||||||
|
Kovacz, liv, вы меня поражаете. Что в следующем коде UB это новость?
0
|
||||||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 27.02.2020, 21:33 | |
|
argcargv, это не новость, причем результат известен всегда
![]() Но это из другой оперы Добавлено через 2 минуты avgoor, именно UB используется для определения платформы. Т.к. в каждой платформе своя организация
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.02.2020, 21:36 | |
|
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 27.02.2020, 21:42 | |
|
avgoor, вот это "определяется реализацией" давайте адресуем нашим оппонентам
0
|
|
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
||
| 27.02.2020, 23:00 | ||
|
> wikipedia > пруф Это даже не смешно. Можно ещё "пруф" с луркомора или абсурдопедии?
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 27.02.2020, 23:02 | |
|
0
|
|
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
| 27.02.2020, 23:30 | |
|
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|||||||
| 28.02.2020, 00:19 | |||||||
|
Ну, ладно. А в этом коде UB есть?
0
|
|||||||
|
4139 / 2717 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
||||
| 28.02.2020, 11:26 | ||||
|
Цитата из стандарта:
Как вообще по-другому можно понять различие big-endian и little-endian?
0
|
||||
|
0 / 1 / 0
Регистрация: 10.07.2017
Сообщений: 8
|
||
| 28.02.2020, 11:43 | ||
|
0
|
||
| 28.02.2020, 11:43 | |
|
Порядок байт в слове и бит в байте Определить порядок хранения байт 16-ричного числа Порядок байт. Массив чаров приводится к типу unsigned int.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|