Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2016, 22:15   #1
ashtone9130
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 45
По умолчанию Запись из Edit в HEX файл

Приветствую))) Прошу помощи, над мелкой проблемой с которой я уже бьюсь несколько дней..

В общем требуется из поля Edit получить двузначное число, которое ввел пользователь.. и вписать в 16 разрядный файл.. только с условием, что данные впишутся в десятичном виде.. так как они есть, то есть вписал пользователь 60, значит в назначеном байте должно появиться 60, а не 3С как это мне конвектирует программа при записи..

Вот как это сделать, понять не могу.. пытался уже число переводить в строку, приписывать "0x" получая тем самым "0x60", что бы в итоге вписалось 60.. но при переводе данной строки в Char.. получаю полную хрень..

Пишу на MS Visual Studio 2010 C++ MFC
ashtone9130 вне форума Ответить с цитированием
Старый 18.01.2016, 00:07   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Я тебя, наверно, шокирую, но кто-то обязан открыть тебе эту страшную военную тайну: вся цифровая электроника работает на двоичном коде, вся информация хранится и обрабатывается в двоичном коде, ДНК всех организьмов - это двоичный код. Нули и единицы - отсутствие/наличие.

А инфа, которую ты видишь глазами и слышишь ушами - это только интерпретация. Это касается и систем счисления. Они есть просто представление двоичной информации в более читабельном для мозга виде - символами.

Если ты ввёл символы "6" и "0", это не значит, что Edit содержит число 60. Всё зависит от интерпретации наблюдателем.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.01.2016, 23:41   #3
ashtone9130
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 45
По умолчанию

Я тебя наверное огорчу, но ты не изобрел велосипед.. все это давно всем известно, поэтому не понятно к чему твой пост.. ответа на поставленный вопрос я в нем не нашел..

Суть в том, что есть поле CEdit в свойстве которого стоит "числовое", пользователь записывает туда число 60.. и вуаля.. теперь программа имеет переменную int равную 60... так же имеется 16 разрядный файл, в который необходимо эту цифру ввести так как она есть.. если просто отправить её на запись, то тогда в файле увидим "3C", что в 16 разрядной системе исчисления и есть число 60.. это происходит из за конвертации числа при записи.. но мне не надо его конвертировать... так от суть вопроса в том, как записать данное число без его конвертирования..

В общем на данный момент вопрос решил тупым но надежным способом.. методом "Case" через сопоставление (число 60 = 0х60), да, объемно получилось 90 значений прописывать, за то работает)))

П.С. Язык только учу, на звание профи не претендую, от того и спрашиваю на форуме..
ashtone9130 вне форума Ответить с цитированием
Старый 18.01.2016, 23:51   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

То есть ввести число, например, FF пользователь не может?
Решение в лоб (если вводятся только цифры):
Код:
int a = 60, b = 0, c = 0;
while (a) {
    b += (a % 10) << c;
    c += 4;
    a /= 10;
}
Теперь в b хранится число, равное 0x60.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 19.01.2016, 08:27   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
то тогда в файле увидим "3C"
Тебя не смущает слово "увидим"? Всё зависит от программы, которая тебе содержимое файла показывает.

И, как ни крути, но 60 = 0x3C = 00111100b.
Может, таки, будешь в свой Edit вводить $60, а не 60?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись из edit в файл. sinobithug Общие вопросы C/C++ 4 28.04.2014 10:00
Ошибка. Берём hex-код, шифруем hex-код, собираем всё в файл. Poltish Общие вопросы Delphi 2 21.08.2013 12:57
как преобразовать байты в hex запись?? Galatimus Мультимедиа в Delphi 3 22.04.2013 22:09
файл из text в hex AET Общие вопросы Delphi 29 31.10.2012 21:53
Как реализовать запись hex в реестр? Ant1Player Общие вопросы Delphi 18 07.07.2009 20:25