Improve unit representation code
This commit is contained in:
parent
9f5fb547f7
commit
f8ed74fda5
@ -1,15 +1,14 @@
|
|||||||
#include <Format.h>
|
#include <Format.h>
|
||||||
#include <Units.h>
|
#include <Units.h>
|
||||||
#include <limits.h>
|
|
||||||
|
|
||||||
Result<usize> to_dynamic_unit(usize value, char* buffer, size_t max)
|
Result<usize> to_dynamic_unit(usize value, char* buffer, size_t max)
|
||||||
{
|
{
|
||||||
if (value < 1024) { return string_format(buffer, max, "%u bytes", value); }
|
if (value < 1024) { return string_format(buffer, max, "%u bytes", value); }
|
||||||
|
|
||||||
const char* unit_prefixes = "KMGTPE";
|
const char* unit_prefixes = "KMGTPE";
|
||||||
for (int i = 40; i >= 0 && value > (0xfffccccccccccccUL >> i); i -= 10)
|
while (value > (1024 * 1024))
|
||||||
{
|
{
|
||||||
value >>= 10;
|
value /= 1024;
|
||||||
unit_prefixes++;
|
unit_prefixes++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user