src/fast/s2u/u32/lib.hpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "../../../bit/bswap/lib.hpp" | ||
| 4 | #include "../../../util/alias/num/lib.hpp" | ||
| 5 | |||
| 6 | namespace tifa_libs { | ||
| 7 | |||
| 8 | 31170774 | CEXP u32 str2uint_si64(chr CPC s) NE { | |
| 9 | 31170774 | u64 _ = *((u64*)(s)); | |
| 10 | if CEXP (std::endian::native == std::endian::big) _ = bswap(_); | ||
| 11 | 31170774 | _ = (_ & 0x0F0F0F0F0F0F0F0F) * 2561 >> 8; | |
| 12 | 31170774 | _ = (_ & 0x00FF00FF00FF00FF) * 6553601 >> 16; | |
| 13 | 31170774 | _ = (_ & 0x0000FFFF0000FFFF) * 42949672960001 >> 32; | |
| 14 | 31170774 | return (u32)_; | |
| 15 | } | ||
| 16 | |||
| 17 | } // namespace tifa_libs | ||
| 18 |