Перейти к содержимому

Как преобразовать число в символ c

  • автор:

Как int (число) превратить в char (строку) в СИ

Но он выводит на экранчик отладочной платы(Explorer 16) полную белиберду. Библиотека #include не поддерживаеться. В связи с тем что программа пишется в MPLAB для микроконтроллера семейства dsPIC33 (почему то не поддерживает эту библиотеку).

Отслеживать
задан 8 авг 2018 в 12:57
2,907 7 7 золотых знаков 44 44 серебряных знака 87 87 бронзовых знаков
atoi объявлен в
8 авг 2018 в 13:05
@acade поправил
8 авг 2018 в 13:12
А сколько там бит в байте? 256 — это 0 mod 256.
8 авг 2018 в 13:13
@bipll поправил
8 авг 2018 в 13:15
@timob256, stdlib.h тоже не поддерживает?
8 авг 2018 в 13:16

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Первый параметр: число которое необходимо преобразовать в строку (int)

Второй параметр: указатель на строку, куда необходимо записать преобразованное число.

Третий параметр: Система счисления, по которой происходит перевод числа

Использование функции itoa в вашем случае:

int adcResult = 333; // исходное число char adcString[15]; // буфер, в которую запишем число itoa(adcResult, adcString, 10); // вместо третьего параметра // можете написать нужное вам значение // например перевести в 16-ричную с.счисления 

puts_lcd необходимо вызвать следующим образом:

puts_lcd(adcString, strlen(adcString)); 

Как преобразовать число в символ c

Здравствуйте господа программеры! Подскажите плиз кто знает, как сделать преобразование числа в символ на С++ Builder.Латиницу знаю, как преобразовывать
Char Str = (char)65;
Результат будет равен “A” а когда берёшь число 193 выводит непонятный символ, а должен вывести символ “Б”.

Пользователь
Регистрация: 05.04.2010
Сообщений: 56
может у вас не подключен русский язык на вывод
setlocale(LC_CTYPE,»Russian»);
сout<<"Изучаю программирование" точка с запятой Подтвердите свой е-майл Регистрация: 05.04.2010 Сообщений: 76 Преобразование числа в строку
Пробовал setlocale(LC_CTYPE,»Russian»); Всё равно не получается.
Пользователь
Регистрация: 01.05.2010
Сообщений: 15

int main()

у меня выводит «Б»
Подтвердите свой е-майл
Регистрация: 05.04.2010
Сообщений: 76
Преобразование числа в символ.

void __fastcall TForm3::Button1Click(TObject *Sender)
setlocale(LC_ALL,»Russian»);
Memo1->Text = (char)193;
>
не выводит.

Пользователь
Регистрация: 02.05.2010
Сообщений: 60

int main()
setlocale(LC_ALL, «Russian»);
std::cout >
это будет работать только в Visual, а для того, чтобы в builder у тебя выводили русские символы, ты должен создать текстовый документ с кодировкой Ms-dos, туда забить следующую строку:
«абвгдеёжзийклмнопрстуфхцчшщъыьэюяА БВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ»
Теперь скопируем наш текстовый документ в папку только что созданного проекта и переименуем этот текстовый документ в (по умолчанию) Unit1.cpp, заменив тем самым изначальный файл.
а теперь функция, которая будет выводить тебе русские символы:
const int N = 66;
const char DosABC[N] =
«» //Здесь были хорошие кракозябры, но, к сожалению, при копировании они
«»; //испортились и я их удалил. Вы можете сделать их сами, как — см. выше
const char WinABC[N] =
«абвгдеёжзийклмнопрстуфхцчшщъыь эюя»
«АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ» ;

std::string ToDosStr(std::string input)
std::string output = «»;
bool Ok;
for (unsigned i = 0; i < input.length(); i++)
Ok = false;
for (int j = 0; j < N; j++)
if (input[i] == WinABC[j])
output += DosABC[j];
Ok = true;
>
if (!Ok)
output += input[i];
>
return output;
>
и теперь можешь писать великим русским языком.
std::cout

Руководство по программированию на C#. Преобразование строки в число

Для преобразования string в число используется вызов метода Parse или TryParse , который можно найти в числовых типах ( int , long , double и т. д.), или используются методы в классе System.Convert.

Немного эффективнее и проще вызвать метод TryParse (например, int.TryParse(«11», out number) ) или метод Parse (например, var number = int.Parse(«11») ). Использование метода Convert более удобно для общих объектов, реализующих IConvertible.

Можно использовать методы Parse или TryParse в числовом типе, который предположительно содержит строка, таком как тип System.Int32. Метод Convert.ToInt32 использует Parse внутри себя. Метод Parse возвращает преобразованное число; метод TryParse возвращает логическое значение, которое указывает, успешно ли выполнено преобразование, и возвращает преобразованное число в параметр out . Если строка имеет недопустимый формат, Parse создает исключение, а TryParse возвращает значение false . В случае сбоя операции синтаксического анализа при вызове метода Parse вы всегда должны использовать обработку исключений, чтобы перехватить FormatException.

Вызов метода Parse или TryParse

Методы Parse и TryParse игнорируют пробелы в начале и в конце строки, но все остальные символы должны быть символами, которые образуют соответствующий числовой тип ( int , long , ulong , float , decimal и т. д.). Любые пробелы в строке, образующие число, приводят к ошибке. Например, можно использовать для decimal.TryParse синтаксического анализа «10», «10,3» или «10», но этот метод нельзя использовать для синтаксического анализа 10 из «10X», «1 0» (обратите внимание на внедренное пространство), «10,3» (обратите внимание на внедренное пространство), «10e1» ( float.TryParse здесь работает) и т. д. Строку со значением null или String.Empty невозможно успешно проанализировать. Вы можете проверить наличие NULL или пустой строки, прежде чем пытаться ее проанализировать, вызвав метод String.IsNullOrEmpty.

В указанном ниже примере демонстрируются успешные и неуспешные вызовы методов Parse и TryParse .

using System; public static class StringConversion < public static void Main() < string input = String.Empty; try < int result = Int32.Parse(input); Console.WriteLine(result); >catch (FormatException) < Console.WriteLine($"Unable to parse ''"); > // Output: Unable to parse '' try < int numVal = Int32.Parse("-105"); Console.WriteLine(numVal); >catch (FormatException e) < Console.WriteLine(e.Message); >// Output: -105 if (Int32.TryParse("-105", out int j)) < Console.WriteLine(j); >else < Console.WriteLine("String could not be parsed."); >// Output: -105 try < int m = Int32.Parse("abc"); >catch (FormatException e) < Console.WriteLine(e.Message); >// Output: Input string was not in a correct format. const string inputString = "abc"; if (Int32.TryParse(inputString, out int numValue)) < Console.WriteLine(numValue); >else < Console.WriteLine($"Int32.TryParse could not parse '' to an int."); > // Output: Int32.TryParse could not parse 'abc' to an int. > > 

В следующем примере показан один из подходов к анализу строки, которая, как ожидается, будет включать начальные числовые символы (включая шестнадцатеричные символы) и конечные нечисловые символы. Он назначает допустимые символы в начале новой строки перед вызовом метода TryParse. Поскольку анализируемые строки содержат небольшое количество символов, в примере вызывается метод String.Concat для назначения допустимых символов новой строке. Для большей строки можете использовать класс StringBuilder.

using System; public static class StringConversion < public static void Main() < var str = " 10FFxxx"; string numericString = string.Empty; foreach (var c in str) < // Check for numeric characters (hex in this case) or leading or trailing spaces. if ((c >= '0' && c = 'A' && char.ToUpperInvariant(c) else < break; >> if (int.TryParse(numericString, System.Globalization.NumberStyles.HexNumber, null, out int i)) < Console.WriteLine($"'' --> '' --> "); > // Output: ' 10FFxxx' --> ' 10FF' --> 4351 str = " -10FFXXX"; numericString = ""; foreach (char c in str) < // Check for numeric characters (0-9), a negative sign, or leading or trailing spaces. if ((c >= '0' && c else < break; >> if (int.TryParse(numericString, out int j)) < Console.WriteLine($"'' --> '' --> "); > // Output: ' -10FFXXX' --> ' -10' --> -10 > > 

Вызов методов класса Convert

В следующей таблице перечислены некоторые методы класса Convert, которые можно использовать для преобразования строки в число.

Числовой тип Метод
decimal ToDecimal(String)
float ToSingle(String)
double ToDouble(String)
short ToInt16(String)
int ToInt32(String)
long ToInt64(String)
ushort ToUInt16(String)
uint ToUInt32(String)
ulong ToUInt64(String)

В данном примере вызывается метод Convert.ToInt32(String) для преобразования входных данных string в значение типа int. Пример перехватывает два наиболее распространенных исключения, которые могут создаваться этим методом, — FormatException и OverflowException. Если итоговое число можно увеличить, не превышая Int32.MaxValue, пример добавляет 1 к результату и отображает вывод.

using System; public class ConvertStringExample1 < static void Main(string[] args) < int numVal = -1; bool repeat = true; while (repeat) < Console.Write("Enter a number between −2,147,483,648 and +2,147,483,647 (inclusive): "); string? input = Console.ReadLine(); // ToInt32 can throw FormatException or OverflowException. try < numVal = Convert.ToInt32(input); if (numVal < Int32.MaxValue) < Console.WriteLine("The new value is ", ++numVal); > else < Console.WriteLine("numVal cannot be incremented beyond its current value"); >> catch (FormatException) < Console.WriteLine("Input string is not a sequence of digits."); >catch (OverflowException) < Console.WriteLine("The number cannot fit in an Int32."); >Console.Write("Go again? Y/N: "); string? go = Console.ReadLine(); if (go?.ToUpper() != "Y") < repeat = false; >> > > // Sample Output: // Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive): 473 // The new value is 474 // Go again? Y/N: y // Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive): 2147483647 // numVal cannot be incremented beyond its current value // Go again? Y/N: y // Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive): -1000 // The new value is -999 // Go again? Y/N: n 

Совместная работа с нами на GitHub

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

Преобразуйте числовые значения в текст

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

Преобразование в строки

Перед R2016b преобразуйте в векторы символов с помощью num2str .

Чтобы преобразовать номер в строку, которая представляет его, используйте string функция.

str = string(pi)
str = "3.1416"

string функция преобразует числовой массив в массив строк, имеющий тот же размер.

A = [256 pi 8.9e-3]; str = string(A)
str = 1x3 string "256" "3.141593" "0.0089"

Можно задать формат синтезируемого текста с помощью compose функция, которая принимает спецификаторы формата для точности, ширины поля и экспоненциального представления.

str = compose("%9.7f",pi)
str = "3.1415927"

Если вход является числовым массивом, то compose возвращает массив строк. Возвратите массив строк, который представляет числа с помощью экспоненциального представления.

A = [256 pi 8.9e-3]; str = compose("%5.2e",A)
str = 1x3 string "2.56e+02" "3.14e+00" "8.90e-03"

Добавьте числа в строки

Перед R2016b преобразуйте числа в векторы символов и конкатенируйте символы в скобках, [] .

Самый простой способ объединить текст и числа состоит в том, чтобы использовать plus оператор + ). Этот оператор автоматически преобразует числовые значения в строки, когда другие операнды являются строками.

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

X = linspace(0,2*pi); Y = sin(X); plot(X,Y) freq = 1/(2*pi); str = "Sine Wave, Frequency = " + freq + " Hz"
str = "Sine Wave, Frequency = 0.15915 Hz"
title(str)

Figure contains an axes object. The axes object with title Sine Wave, Frequency = 0.15915 Hz contains an object of type line.

Иногда существующий текст хранится в векторах символов или массивах ячеек из символьных векторов. Однако plus оператор также автоматически преобразует те типы данных к строкам, когда другой операнд является строкой. Чтобы объединить числовые значения с теми типами данных, сначала преобразуйте числовые значения в строки, и затем используйте plus объединить текст.

str = 'Sine Wave, Frequency = ' + string(freq) + ' Hz'>
str = "Sine Wave, Frequency = 0.15915 Hz"

Коды символов

Если ваши данные содержат целые числа, которые представляют значения Unicode®, используют char функционируйте, чтобы преобразовать значения в соответствующие символы. Выход является вектором символов или массивом.

u = [77 65 84 76 65 66]; c = char(u)
c = 'MATLAB'

Преобразование значений Unicode также позволяет вам включать специальные символы в текст. Например, значение Unicode для символа степени равняется 176. Добавить char(176) к строке используйте plus .

deg = char(176); temp = 21; str = "Temperature: " + temp + deg + "C"
str = "Temperature: 21°C"

Перед R2016b используйте num2str преобразовать числовое значение в вектор символов, и затем конкатенировать.

str = ['Temperature: ' num2str(temp) deg 'C']
str = 'Temperature: 21°C'

Шестнадцатеричные и двоичные значения

Начиная с R2019b

Можно представлять шестнадцатеричные и двоичные значения в коде или текст использования или использование литералов . Рекомендуемый способ представлять их состоит в том, чтобы записать им как литералы. Можно записать шестнадцатеричные и бинарные литералы с помощью 0x и 0b префиксы соответственно. Однако может иногда быть полезно представлять такие значения как текст, с помощью dec2hex или dec2bin функции.

Например, установите немного в двоичном значении. Если вы задаете двоичное значение с помощью литерала, то оно хранится как целое число. После установки одного из битов отобразите новое двоичное значение как текст с помощью dec2bin функция.

register = 0b10010110
register = uint8 150
register = bitset(register,5,0)
register = uint8 134
binStr = dec2bin(register)
binStr = '10000110'

Смотрите также

Похожие темы

  • Преобразуйте текст в числовые значения
  • Шестнадцатеричные и двоичные значения
  • Преобразование между массивами datetime, числами и текстом
  • Форматирование текста
  • Unicode и значения ASCII

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *