Skip to content

Commit 6cd6c62

Browse files
committed
upd
1 parent 2c15192 commit 6cd6c62

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,7 @@ uint8_t sseg::getCharCode(char symb);
502502

503503
// получить длину int числа
504504
uint8_t sseg::intLen(int32_t val);
505+
uint8_t sseg::intLen(uint32_t val);
505506

506507
// получить длину float числа при указанной точности
507508
uint8_t sseg::floatLen(double val, uint8_t dec = 2);

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=GyverSegment
2-
version=1.4.6
2+
version=1.4.7
33
author=AlexGyver <[email protected]>
44
maintainer=AlexGyver <[email protected]>
55
sentence=Powerful library for controlling 7-segment indicators

src/core/utils/SegUtils.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,18 +90,20 @@ uint8_t getCharCode(char symb) {
9090
return pgm_read_byte(_segCharMap + (symb - 32));
9191
}
9292

93-
uint8_t intLen(int32_t val) {
94-
if (!val) return 1;
95-
uint8_t len = (val < 0);
96-
while (val) {
97-
len++;
98-
val /= 10;
99-
}
93+
uint8_t intLen(uint32_t val) {
94+
uint8_t len = 0;
95+
do len++;
96+
while (val /= 10);
10097
return len;
10198
}
10299

100+
uint8_t intLen(int32_t val) {
101+
bool neg = val < 0;
102+
return intLen(uint32_t(neg ? -val : val)) + neg;
103+
}
104+
103105
uint8_t floatLen(double val, uint8_t dec) {
104-
return intLen(val) + dec;
106+
return intLen((int32_t)val) + dec;
105107
}
106108

107109
} // namespace sseg

src/core/utils/SegUtils.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ uint8_t getCharCode(char symb);
99
// получить длину int числа
1010
uint8_t intLen(int32_t val);
1111

12+
// получить длину uint числа
13+
uint8_t intLen(uint32_t val);
14+
1215
// получить длину float числа при указанной точности
1316
uint8_t floatLen(double val, uint8_t dec = 2);
1417

0 commit comments

Comments
 (0)