|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||||||||||||||||||||||||||||||||||||
Порядок байт24.02.2020, 18:17. Показов 11076. Ответов 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
|
|
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
|
||
| 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.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|