|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||||||||||||||||||||||||||||||||||||
Порядок байт24.02.2020, 18:17. Показов 11088. Ответов 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
|
||
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
|
||||||||||||
| 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
|
|||||||
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
|
||||
| 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
|
|||||||
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
|
||||
| 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.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|