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