|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||||||||||||||||||||||||||||||||||||
Порядок байт24.02.2020, 18:17. Показов 11025. Ответов 88
Метки нет (Все метки)
Здравствуйте,
Подскажите пожалуйста, вот есть:
Но, если сделать так:
То есть компьютер просматривает байты в int справо налево, противоположно привычно-человеческому слева направо ? :
Если да, то подскажите пожалуйста: 1)Но если сделать сдвиг бита << влево, то бит сдвигается влево. То есть bigendian, littleendian - влияет только на байты, а не биты внутри байта ? 2) bigendian, littleendian - зависит от ОС или от процессора ? И есть функция, как определить какая из этих штук действует условно на моем компе ?
0
|
|||||||||||||||||||||||||||||||||||||||||
| 24.02.2020, 18:17 | |
|
Ответы с готовыми решениями:
88
Порядок следования байт Порядок байт в union Порядок байт у числовой переменной |
| 26.02.2020, 18:01 | |
|
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 26.02.2020, 18:01 | |
|
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|||
| 26.02.2020, 18:05 | |||
0
|
|||
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
||
| 26.02.2020, 18:07 | ||
void* или char* или float* или std::string*, но при этом значение "указатель на объект x (с типом int)"
0
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 26.02.2020, 18:07 | |
|
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|||
| 26.02.2020, 18:18 | |||
|
Добавлено через 9 минут argcargv, читал и перечитывал не раз. ![]() Вот это
Хотите сказать, что чтение по адресу *((char*)&x) даст тот же x?
0
|
|||
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|||
| 26.02.2020, 18:29 | |||
x. Если значение x влазит в диапазон для char, lvalue-to-rvalue conversion, применённое к этим двум lvalue, должно дать одно и то же значение — значение x.
0
|
|||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 26.02.2020, 18:31 | |
|
После (char*)&x уже нет int*, появился char*. Хотя адрес продолжает указывать на место, где был int.
В этом смысле указатель по-прежнему указывает на объект int. С такой формулировкой я согласен
0
|
|
|
4139 / 2717 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
||
| 26.02.2020, 18:31 | ||
|
Эзотерику какую-то разводите "как оно могло бы быть". Но чтобы это реализовать и не поломать того что есть, пришлось бы приложить изрядные усилия. А зачем?
1
|
||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|||
| 26.02.2020, 18:34 | |||
|
Или, может, так уже вообще нельзя делать, ибо, оказывается, нет никаких гарантий? ![]() Добавлено через 1 минуту
0
|
|||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||
| 26.02.2020, 19:01 | |||
|
Я лишь говорю то, что стандарт описывает или не описывает. Этот случай подпадает под второе.
0
|
|||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 26.02.2020, 19:22 | ||
|
Хорошо, что делать, когда НАДО прочитать первый или второй байт int-а? Прямо из памяти, а не сдвигами, and-ами и т.п. И что делать с union, в которых совмещаются int и 4 байта? Тоже вне закона? Добавлено через 1 минуту Таких вопросов найдется вагон и маленькая тележка
0
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||||||
| 26.02.2020, 19:31 | ||||||||||
![]() *(char*)&x не будет работать, или что это UB. Так как я не уверен в этом, явного вординга об этом в стандарте нету, по крайней мере пока что. Возможно потенциально это и UB, но когда это кого останавливало?Type punnig тоже UB.
0
|
||||||||||
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
||
| 26.02.2020, 19:38 | ||
*(char*)&x, когда значение не в диапазоне char, явно сказано что UB.
0
|
||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 26.02.2020, 19:42 | |
|
Azazel-San, так юнион по сути есть адресация байтов int-а.
Если каст инта на чар есть UB, то почему юнион разрешен? Добавлено через 1 минуту Хотя с юнион в целом понятно. Вопрос снимаю ![]() Добавлено через 1 минуту А вот с приведением к char* и получением UB не могу согласиться
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 26.02.2020, 20:18 | |
|
argcargv, так у нас вроде в диапазоне было? Или что вы имели ввиду под диапазоном?
liv, дело ваше. А вы понимаете, что такое UB?
0
|
|
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||||||||
| 26.02.2020, 20:33 | ||||||||
|
О том, что указатель указывает на первый байт объекта, в стандарте не нашел, но есть пара цитат из `Programming Principles and Practice Using C++` Страуструпа. `17.3 Memory, addresses, and pointers` `17.4.1 Free-store allocation` И наконец о преобразовании указателей (цитаты из `17.8 Messing with types: void* and casts` той же книги):
*(char*)&x делает то же самое, но запись короче. Где же тут UB?
0
|
||||||||
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
| 26.02.2020, 20:50 | |
|
1
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||
| 26.02.2020, 20:52 | ||
|
0
|
||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 26.02.2020, 21:46 | |
|
Azazel-San, да знаю я, что такое UB (undefined behavior, неопределенное поведение), знаю. Это практически означает, что нет гарантий того или иного поведения. Мне не нравится создание ситуаций, приводящих к UB, причем, на пустом месте.
Добавлено через 2 минуты Почитаю потом ещё раз предложенный стандарт, с лупой
0
|
|
| 26.02.2020, 21:46 | |
|
Порядок байт в слове и бит в байте Определить порядок хранения байт 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-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|