Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Запись четырехсимвольных констант в int - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не работает getch() http://www.cyberforum.ru/cpp-beginners/thread659058.html
не работает задержка по getchar() #include <iostream> #include <cstdlib> #include <time.h> #include <cstdio> #include <unistd.h> using namespace std;
C++ возвращаемые значения функции шаблонного класса A и A<T> первый листинг template <typename T> class A { public: T a; A& f() http://www.cyberforum.ru/cpp-beginners/thread659044.html
C++ Хороший тон программирования
Можно ли считать хорошим тоном в программировании? Например вот такой вот код? #define FOR for(int a=0;a<10;a++) ........ FOR { cout<<a<<'\n'; }
C++ Изменение отдельных символов в массиве "std::string"
Добрых времени суток, форумчане! Я тут решил переписать свой криптовальщик с GML на C++ и у меня возникла следующая проблема: мне нужно в массиве "std::string" изменить 1 символ, например: #include...
C++ Снова задача про ход коня http://www.cyberforum.ru/cpp-beginners/thread659012.html
Здравствуйте. Задача: рекурсивно обойти шахматную доску конем (программа просто выводит один вариант решения, без дополнительных наворотов, первый ход делается случайным образом, после каждого хода...
C++ C++ DLL for C# entry point heared -> #ifndef _DLLTEST_H_ #define _DLLTEST_H_ #include <string> using namespace std; extern "C" __declspec(dllexport) string f1(string); #endif подробнее

Показать сообщение отдельно
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
27.09.2012, 17:50  [ТС]
Цитата Сообщение от easybudda Посмотреть сообщение
Это зависит от порядка байт (byte order), принятого в системе. На MacOS X значения в int "нормально" пишутся, а не "задом на перёд". Читайте про little endian / big endian byte order...
Просто в одном случае порядок правильный, а в другом обратный. Но это одна и та же система и компилятор.

Добавлено через 1 минуту
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Это касается любых "многосимвольных" символьных литералов: 'что-то', где это что-то — не один-единственный символ. Такие литералы имеют тип int и его значение определяется реализацией (компилятором).
Вот оно как... Спасибо большое. Мне очень помогло и многое проясняет!

Добавлено через 19 минут
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
А эта реализация вполне может трактовать шестнадцатеричную запись как просто число ('\x12\x34\x56\x78' как 0x12345678), а четыре символа как четыре байта ('\x12\x34\x56\x78' как "\x12\x34\x56\x78", а потом этот кусок памяти посчитать как int и получить соответствующую проблему с порядком байт).
Все правильно, только с точностью до наоборот! Шестнадцатиричные коды реализация трактует как байты и в соответствии с little / big endian byte order пишет их с права на лево, а символы просто понимает как число! Еще раз большое спасибо всем!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru