|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||||||||||||||||||||||||||||||||||||
Порядок байт24.02.2020, 18:17. Показов 11150. Ответов 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
|
||
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,065
|
||||||||||||
| 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
|
|||||||
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,065
|
||||
| 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
|
|||||||
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,065
|
||||
| 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.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
По какой причине рабочий алгоритм может называться бредом?
Hrethgir 05.08.2026
3 мая мной была сделана публикация на Хабре авторского алгоритма итеративного обхода дерева "эстафета хвоста". Удаление публикации видимо произошло из-за отзывов об алгоритме такого рода
Ну, я тебе. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|