конвертция uint8_t в String
- Войдите на сайт для отправки комментариев
Чт, 26/12/2019 - 18:11
привет.создаю проект с дисплеем и часами, с часов получаю данные типа uint8_t и честно говоря не знаю что это , но дисплей принимает только String . напишите команды с помощью которых перменную типа uint8_t " Y "можно преобразовать в String "Y1". я еще новичек, так что простите).в интернете не нашел ответа.
$50 и я поищу в интернете и найду ответ.
получаю данные типа uint8_t и честно говоря не знаю что это
После такого не вижу смысла вообще вам в чем-либо помогать. На форуме программистов написать, что вы не знаете что такое uint8_t - это как на ЕГЭ по литературе признаться. что не знаешь букв.
Вместо того чтоб делать подобные признания - потратили бы полчаса чтоб поискать в гугле. что это такое.
Растолкую за uint8_t примерно за $100. Коту на сено.
krokodi1, memcpy() в цикле. Тупой способ но действенный, вашу задачу решит.
Могу за $150. Но Дед Физтех, а я МехМат! ;)))
"... дороже стоит граф!"(с)
Ну да, у тебя же три кота, сена нада больше. :-)
Uint8_t это по простому unsigned char.
Uint8_t это по простому unsigned char.
Ну это вы , батенька, погорячились. _t это тип, U это unsigned, int это int, 8 это размер int.
И где здесь char ?
Uint8_t это по простому unsigned char.
Да ты шо!?
String(ваша уинт8_тэ) 200 зеленых
втом то и дело, не работает так...
А текст программы, который не работает и ссылка на библиотеку , что int, int просит ?
библиотека тфт стандартная
В какой строке программы возникает ошибка? Не вижу преобразования в стринг.
строки 68 и 96
А как ты понял, что принимает только string? Может быть надо открыть текст библиотеки и посмотреть какой тип имеет первая переменная?
я смотрел примеры из библиотеки, там все значения преобразовывались в стринг
Там преобразовывались, а у тебя ошибка? Может всё ж посмотришь чем string от String отличаются в справочнике языка, и который надо с функцией tfttext использовать? Загляни в библиотеку. Посмотри тип. Ошибка пишет что у библиотеки нет метода с String. Это как бы намекает.
вот кусок из примера:
Хорошо. Обратите внимание, что в функцию подставляется не String, a CharArray.
Вместо
напиши:
должно помочь.
ого! спасибо огромное!
вопрос решен!
спасибо!
Uint8_t это по простому unsigned char.
Ну это вы , батенька, погорячились. _t это тип, U это unsigned, int это int, 8 это размер int.
И где здесь char ?
Он именно так и определен. По умолчанию, в Си тип char - знаковый (но можно изменить опциями компилятора) и однобайтный (нельзя изменить), поэтому byte определен как unsigned char, а из него, для единообразия выведен uint8_t.
Эх дед. И ты туда же. В си char может быть и 32 разрядным. У него в определении не точно 8 бит , а минимум 8 бит. А uint8_t всегда беззнаковый и восьмибитный. В этом разница.
Эх дед. И ты туда же. В си char может быть и 32 разрядным. У него в определении не точно 8 бит , а минимум 8 бит. А uint8_t всегда беззнаковый и восьмибитный. В этом разница.
Блин, в старых учебниках писали 8 бит.
А вы уверены что uint8t 8 бит? Я нагуглил что оно не 8 бит а минимальная адресуемая единица.
В Ардуино это одно и тоже https://oscarliang.com/arduino-difference-byte-uint8-t-unsigned-cha/
ISO/IEC 9899:1999 (E)
7.18.1.1 Exact-width integer types
1 The typedef name intN_t designates a signed integer type with width N, no padding bits, and a two’s complement representation. Thus, int8_t denotes a signed integer type with a width of exactly 8 bits.
2 The typedef name uintN_t designates an unsigned integer type with width N. Thus, uint24_t denotes an unsigned integer type with a width of exactly 24 bits.
3 These types are optional. However, if an implementation provides integer types with widths of 8, 16, 32, or 64 bits, it shall define the corresponding typedef names.
Этот стандарт покажите разработчикам arduino ide
а подраться, пятница жеж )))
Причём тут разработчики arduino IDE? В avr-gcc они своими руками не залезали.
Переопределить char, byte и пр. - в их власти, но uint8_t - это stdint.h, к которому они и на километр не подходили.
Эх дед. И ты туда же. В си char может быть и 32 разрядным. У него в определении не точно 8 бит , а минимум 8 бит. А uint8_t всегда беззнаковый и восьмибитный. В этом разница.
А ты точно уверен? А для чего ввели wchar_t? Обьясни.
Char занимает 1 байт всегда. Другое дело, что в системах байт не всегда 8 бит. Если я неправ, Петрович рассудит.
uint8_t, кста, в таких системах тоже 1 байт занимает, и пофиг, что в нем 64 бита, например
А што это за системы и почём там бит?
А што это за системы и почём там бит?
это в стандарте так написано 5.3.3/1.
На Одре байт был равен 24 битам. Char, сатвецтвенно, тоже. А wchar_t на её придумать не сподобились, ибо она падохла задолго до Unicod-а
это в стандарте так написано 5.3.3/1.
Што-то не вижу: http://www.dii.uchile.cl/~daespino/files/Iso_C_1999_definition.pdf
с номером параграфа я мог и напутать, но, откройте у себя limits.h, у каждого он есть и паматрите
Неть, не напутал, я алкаш, а не склерозник
The sizeof operator yields the number of bytes in the object representation of its operand. The operand is either an expression, which is not evaluated, or a parenthesized type-id. The sizeof operator shall not be applied to an expression that has function or incomplete type, or to an enumeration type before all its enumerators have been declared, or to the parenthesized name of such types, or to an lvalue that designates a bit-field. sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1. (имееца ввиду байт, неважно скока в ём битов)
от тута 5.3.3
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf
чо я спорю, у нас с котом корпоративчик, пока аццкой сотоны нет. :)
1. не вы первые задаётесь столь актуальным вопросом ;)))))
https://stackoverflow.com/questions/2098149/what-platforms-have-something-other-than-8-bit-char
2. Ваащет какрас для пятницы тема!
Char занимает 1 байт всегда. Другое дело, что в системах байт не всегда 8 бит. Если я неправ, Петрович рассудит.
uint8_t, кста, в таких системах тоже 1 байт занимает, и пофиг, что в нем 64 бита, например
Глубокоуважаемый ДЕД! В #28 сорок первый грустный человек привёл кусочек стандарта, где написано что цифра в этом типе соответствует количеству бит. Как я понимаю с размером байта ни как не связано.
Wchar тип вводили для поддержки широких символов, но потом символы ещё расширились. Как теперь обстоит с wchar_t дело я не знаю. Не приходилось в плотную сталкиваться. В моих программах русского текста пока не было.
Неть, не напутал, я алкаш, а не склерозник
The sizeof operator yields the number of bytes in the object representation of its operand.
Так это и понятно!
Положим, что в байте 64 бита. Значит uint8_t - это 1/8 байта, тоись 0,125 шт. А ежели sizeof() должен целое число выдать, то токо два варианта имеется: 0 или 1.
Ну вот какой нормальный человек выберет вместо литра - нуль? Стало быть - sizeof() писали люди понимающие нужды трудового народа. С сочувствием подошли к проблеме.
Я до ЕвгенияП спорить не буду.
По моему стойкому убеждению, sizeof(char)==sizeof(byte)==sizeof(uint8_t).
Дорогой Дед! Выдержка из раздела программирование сайта: Тип char знаковый тип, т.е. число (код) хранящийся в памяти может принимать значения от -128 до 127. Если необходим беззнаковая однобайтовая переменная, используйте тип byte.
Сайзы в среде одинаковые. Это ты прав. Но даже эта цитата говорит, что char != uint8_t == byte .
Да блин, ты путаешь причину и следствие. Базовый тип это char, он знаковый и имеет минимальный для системы размер == 1. Все остальные типы выводятся из него.
using byte = unsigned char;
using uint8_t = byte;
Поэтому, за исключением знаковости, char и uint8_t одно и то же. Я хотел сказать только это.
На всякий случай, спор начался с этого.
Uint8_t это по простому unsigned char.
Ну это вы , батенька, погорячились. _t это тип, U это unsigned, int это int, 8 это размер int.
И где здесь char ?
я утверждаю, что uint8_t == unsigned char. и по размеру и по сути.
С99 это общий стандарт на все случаи жизни. Есть ещё POSIX в котором char это 8 бит. 99,9 % программистов никогда не сталкивались с некоторыми DSP контроллерами у которых char не 8 бит.
Дальше что? uint8_t - это тип с любой размерностью, которая меняется каждый день в зависимости от направления ветра?
Я стандарт привёл, avr-gcc ему следует. Со своей стороны вам необходимо привести доказательство обратного - пример системы, в которой uint8_t будет официально составлять 12.5 бита.
Вы тут новичкам голову не морочте)) Кто программирует DSP процессоры нужные пункты стандартов хорошо знает.
В 1 байт никак нельзя засунуть время, вы что то путаете. Уточните в каком формате RTC отдаёт время, и может Вам посоветуют как его сконвертировать в строку.