summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--number.cpp15
-rw-r--r--number.h2
2 files changed, 13 insertions, 4 deletions
diff --git a/number.cpp b/number.cpp
index 497cf64..fa62b00 100644
--- a/number.cpp
+++ b/number.cpp
@@ -2,9 +2,18 @@
#include <sstream>
#include "number.h"
-number::number(std::uint32_t n):
- _operands{n}
-{ }
+number::number(std::uint64_t n)
+{
+ if (n == 0) {
+ return;
+ }
+
+ _operands.push_back(n & UINT32_MAX);
+
+ if (n > UINT32_MAX) {
+ _operands.push_back(n >> 32);
+ }
+}
/* Type Conversion {{{ */
diff --git a/number.h b/number.h
index 16fcea6..f68299d 100644
--- a/number.h
+++ b/number.h
@@ -13,7 +13,7 @@ public:
number &operator=(const number &) = default;
- number(std::uint32_t);
+ number(std::uint64_t);
/**
* \brief Return a hexadecimal string representation of this number.