вопрос по strtol
- Войдите на сайт для отправки комментариев
Пнд, 12/12/2011 - 23:45
Собсно, вот
byte RX_Data[32]; .... .... long utime; RX_Data[15] = '\0'; utime = strtol((char*)RX_Data, NULL, 10); Serial.println(utime, DEC);
возвращает в терминал 0
Если же так:
char utime[10]; for (int x=0; x<=9; x++) utime[x] = RX_Data[5 + x]; long utime; utime = strtol(utime, NULL, 10);
То все в порядке. Разница между массивами:
1) RX_Data тип byte, utime тип char []
2) Разная длинна
3) В начале RX_Data идут буквы, пробле и потом цифры. В конце нули.
Вроде как strtol должна сама разобраться в массиве и вытащить из него числа. Но она этого не делает, видимо не понимает длинну RX_Char
Подскажите? )
Ага
Придется в цикле все же перегонять данные, ибо как заставить strtol читать не с начала строки я хз.. хотя..
хы
я начинаю понимать и любить эти ваши си )))) Спасибо!
ЗЫ который раз замечено и проверено.. пока не напишу сюда - мысль в голову не идет )
Подскажите, как преобразовать строку, например, "1B" в десятичное целое число 27?
Подскажите, как преобразовать строку, например, "1B" в десятичное целое число 27?
Боюсь, Вы спрашиваете совсем не то, что хотите узнать.
Вы осознаете, что десятичное число в компьютере может быть только в виде строки? Вам действительно нужно преобразовать одну строку в другую? Или нужно преобразовать строку в число? В последнем случае число будет не десятичным.