Форум программистов, компьютерный форум 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 <iostream> int main() { std::string i; i="Hello"; std::cout<<"Default string: "<<i<<endl; for (int x=0; x<i.size(); x+=1) {if (i=='H')
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.
 Аватар для D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
27.09.2012, 17:50  [ТС]     Запись четырехсимвольных констант в int
Цитата Сообщение от 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 пишет их с права на лево, а символы просто понимает как число! Еще раз большое спасибо всем!
 
Текущее время: 09:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru