Перевод hex в int

Функция перевода из int to hex и обратно. Не ужели нет стандартных функций?

Нужно сейчас написать програмку на Visual C++ (Microsoft Visual C++ 6.0).

Начал писать и столкнулся с полным отстутствеим стандартным уже для всех языков функционалом.

Подскажите пожалйста названия функций для:

— конвертации из int в hex
— конвертации из hex в int
— конвертации из hex в bin
— из int в string/char и обратно.

В справочниках я не нашел этог к сожалению.

Заранее большое спасибо.

Функция перевода из Float в Hex
Подскажите функции для перевода вещественного числа в шестнадцатеричное число, и будет ли она.

Функция перевода строчных букв в прописные и обратно
Написать функцию перевода строчных букв, введенного с клавиатуры текста, в прописные и обратно.

Функция: вычисление наименьшего общего кратного без использования стандартных функций
Нужно написать функцию, которая вычисляет наименьшее общее кратное двух заданных на входе.

Существует ли метод/функция перевода значения символьной переменной в int
Хотел спросить, существует ли метод/функция перевода значения символьной ПЕРЕМЕННОЙ в int?

ну тогда с bin, hex надеюсь понятно — определяется параметром в itoa

а лучше пользоваться sprintf — он переносимый, в отличии от itoa

ну тогда с bin, hex надеюсь понятно — определяется параметром в itoa

Опять не работает:
выдает ошибки что не может конвертировать int 1 to Char *

Приведу пример того что есть:

P.S. на php например можно просто написать str=a+b; или str.=a; str.=b; . а здесь. все плохо

сами посудите: результат не влезет в один символ

Кто спорит Просто сейчас стоит задача максимально доступными способами написать прогу.
А разбиратся с тем есть ли у С++ условные ifelse и как оно устроено . пока как видите другие проблемыю.

Сейчас провеорю. примерно я понял проблему. т.е. если я не указываю размерность char и присваиваю её первое значение в один символ, то она автоматом объявляется как размером в один символ.

Ну там первый символ в другом месте считается.
Сейчас попробую выставить размерности.

Добавлено через 5 минут
Сделал так:

Не работает. куча ошибок.

Добавлено через 6 минут
Вобщем ругается на условия:

error C2440: ‘=’ : cannot convert from ‘const char’ to ‘char [1]’

Бред.

Не нравится ей что там 1 символ. мать мать перемать.

Забил на перевод из dec в hex . воспользовался sprintf с параметром %X.

А есть какая-нить функция для перевода dec или hex в двоичный формат?

Добавлено через 8 часов 50 минут
Результат выполнения функции:

Источник

Руководство по программированию на C#. Преобразование шестнадцатеричных значений из строкового типа в числовой тип How to convert between hexadecimal strings and numeric types (C# Programming Guide)

В следующих примерах кода показано выполнение указанных ниже задач. These examples show you how to perform the following tasks:

Получение шестнадцатеричного значения каждого символа в string. Obtain the hexadecimal value of each character in a string.

Получение char, соответствующего каждому значению в шестнадцатеричной строке. Obtain the char that corresponds to each value in a hexadecimal string.

Преобразование шестнадцатеричного значения string в int. Convert a hexadecimal string to an int.

Преобразование шестнадцатеричного значения string в float. Convert a hexadecimal string to a float.

Преобразование массива byte в шестнадцатеричное значение string . Convert a byte array to a hexadecimal string .

Пример Example

Результатом следующего примера является шестнадцатеричное значение каждого символа в string . This example outputs the hexadecimal value of each character in a string . Сначала выполняется разбор string до массива символов. First it parses the string to an array of characters. Затем, чтобы получить числовое значение каждого символа, для каждого из них вызывается метод ToInt32(Char). Then it calls ToInt32(Char) on each character to obtain its numeric value. В конце формат числа меняется на шестнадцатеричный в string . Finally, it formats the number as its hexadecimal representation in a string .

Пример Example

В этом примере анализируется string шестнадцатеричных значений и выводится символ, соответствующий каждому шестнадцатеричному значению. This example parses a string of hexadecimal values and outputs the character corresponding to each hexadecimal value. Сначала вызывается метод Split(Char[]) для получения каждого шестнадцатеричного значения как отдельной string в массиве. First it calls the Split(Char[]) method to obtain each hexadecimal value as an individual string in an array. Затем вызывается метод ToInt32(String, Int32), который преобразует шестнадцатеричное значение в десятичное, представленное в целое число. В примере показано два разных способа получения символа, соответствующего этому коду символа. Then it calls ToInt32(String, Int32) to convert the hexadecimal value to a decimal value represented as an int. It shows two different ways to obtain the character corresponding to that character code. В первом случае используется ConvertFromUtf32(Int32), который возвращает символ, соответствующий целочисленному аргументу, в виде string . The first technique uses ConvertFromUtf32(Int32), which returns the character corresponding to the integer argument as a string . По второму способу выполняется явное приведение int к char. The second technique explicitly casts the int to a char.

Пример Example

В этом примере показан еще один способ преобразования шестнадцатеричного string в целое число — с помощью метода Parse(String, NumberStyles) . This example shows another way to convert a hexadecimal string to an integer, by calling the Parse(String, NumberStyles) method.

Источник

Arduino.ru

Преобразование типов String HEX в INT

Стоит такая задача. Имеется строка типа String, которая содержит в себе шестнадцатиричное число.

Как теперь можно преобразовать это значение в тип INT или BYTE, есть какое нибудь простое решение? Конвертации вида: str.toInt(); и тому подобные, ни к чему не приводят. Как правило появляется ошибка о несовместимости типов, либо результатом является НОЛЬ. Т.к. буквы не конвертируются напрямую в числа. )))

Спасибо Andy! 🙂 Только конструкция вида:

не работает.. 🙁 В качестве аргумента функция atoi понимает только тип char. Как перевести тогда String в char?

int i = atoi(str.c_str());

int i = atoi(str.c_str());

Эммм. так получаются нули в результате. 🙁

str.c_str() конвертирует вроде без ошибок, на выходе 0xC2. Не работает само преобразование в int, на выходе всегда ноль.

Попробовал вывести в порт значение переменной i, на выходе получил ноль. Почему-то сама функция не работает. 🙁

Блин, вчера число на биты раздирали в массив. В школе задание дали, чтоли?

Прогресс есть, теперь выводит единицу вместо нуля. ))))

Нет, в школе давно уже не учусь. 🙂 Мне нужно строку формата (dd:c2:be:ef:fe:ed) записать в память мк. Т.е. проверить каждый из шести разрядов адреса на соответствие диапазону значений 00-FF, потом преобразовать это значение в байт и сохранить. Проблема стоит с преобразованием в десятичное число. С обратным преобразованием проблем нет никаких, делается так:

В ячейке памяти хранится один из разрядов в десятичном виде (тип byte). При выводе ф-я String преобразуеи значение в 16-ричный формат, все работает. Обратно сделать не получается. моск плачет уже. )))

dbf-334, а попробуйте использовать EEPROM.get и EEPROM.put с их помощью можно записывать и int и char во встроенной библиотеке eeprom

dbf-334, а попробуйте использовать EEPROM.get и EEPROM.put с их помощью можно записывать и int и char во встроенной библиотеке eeprom

Дело в том, что прежде чем записать значение в ячейку памяти, его сначала нужно проверить. Т.е. если пользователь указал значение «0xGR», а оно ну ни как не укладывается в диапазон 00-FF, оно вообще ошибочно. В память я могу его тупо записать, даже без ошибок и оно будет там спокойно лежать. Только это получится смысловая ошибка, что не допустимо! Указанные вами ф-ции работают напрямую с памятью, минуя всякие проверки. С их помощью можно вообще все что угодно записать и считать, даже структуры данных определенные самим разработчиком, только это все не то. 🙁

Мне нужно преобразовать 16-ричное число в байт. Проверить, что это число байта лежит в диапазоне 0-255 и записать этот готовый байт уже в ячейку памяти. Тупо не могу просто преобразовать HEX->DEC.

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Научные работы на RJ-diplom.ru
Adblock
detector