Loading include/object/outputstream.h +3 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,10 @@ class OutputStream { char digit_buffer[sizeof(long long) * 8]; uint8_t base; uint8_t ndigits; public: OutputStream(); OutputStream() : base(10), ndigits(2) {}; virtual void put(char c) = 0; Loading Loading @@ -52,6 +53,7 @@ class OutputStream { #endif void setBase(uint8_t b); void setDigits(uint8_t ndig); void printf_uint8(uint8_t num); void printf_float(float num); }; Loading src/object/outputstream.cc +10 −7 Original line number Diff line number Diff line Loading @@ -162,6 +162,11 @@ void OutputStream::setBase(uint8_t b) } } void OutputStream::setDigits(uint8_t ndig) { ndigits = ndig; } static inline char format_hex_nibble(uint8_t num) { if (num > 9) { Loading Loading @@ -199,8 +204,11 @@ void OutputStream::printf_float(float num) } put('0' + ((unsigned int)num % 10)); put('.'); put('0' + ((unsigned int)(num * 10) % 10)); put('0' + ((unsigned int)(num * 100) % 10)); float mul = 10; for (int i = 0; i < ndigits; i++) { put('0' + ((unsigned int)(num * mul) % 10)); mul *= 10; } } OutputStream & flush(OutputStream & os) Loading Loading @@ -246,8 +254,3 @@ OutputStream & term(OutputStream & os) os.flush(); return os; } OutputStream::OutputStream() { base = 10; } Loading
include/object/outputstream.h +3 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,10 @@ class OutputStream { char digit_buffer[sizeof(long long) * 8]; uint8_t base; uint8_t ndigits; public: OutputStream(); OutputStream() : base(10), ndigits(2) {}; virtual void put(char c) = 0; Loading Loading @@ -52,6 +53,7 @@ class OutputStream { #endif void setBase(uint8_t b); void setDigits(uint8_t ndig); void printf_uint8(uint8_t num); void printf_float(float num); }; Loading
src/object/outputstream.cc +10 −7 Original line number Diff line number Diff line Loading @@ -162,6 +162,11 @@ void OutputStream::setBase(uint8_t b) } } void OutputStream::setDigits(uint8_t ndig) { ndigits = ndig; } static inline char format_hex_nibble(uint8_t num) { if (num > 9) { Loading Loading @@ -199,8 +204,11 @@ void OutputStream::printf_float(float num) } put('0' + ((unsigned int)num % 10)); put('.'); put('0' + ((unsigned int)(num * 10) % 10)); put('0' + ((unsigned int)(num * 100) % 10)); float mul = 10; for (int i = 0; i < ndigits; i++) { put('0' + ((unsigned int)(num * mul) % 10)); mul *= 10; } } OutputStream & flush(OutputStream & os) Loading Loading @@ -246,8 +254,3 @@ OutputStream & term(OutputStream & os) os.flush(); return os; } OutputStream::OutputStream() { base = 10; }