mirror of
https://github.com/radareorg/radare2.git
synced 2024-11-27 07:00:30 +00:00
Fixes for large numeric values in base64 and clz64
This commit is contained in:
parent
ce1170c293
commit
1009f69cc2
@ -21,9 +21,9 @@ R_API void b36_fromnum(char *s, ut64 n) {
|
||||
|
||||
static const ut64 pow36[36] = {
|
||||
1, 36, 1296, 46656, 1679616, 60466176,
|
||||
2176782336, 78364164096, 2821109907456,
|
||||
101559956668416, 3656158440062976,
|
||||
131621703842267136, 4738381338321616896,
|
||||
2176782336ULL, 78364164096ULL, 2821109907456ULL,
|
||||
101559956668416ULL, 3656158440062976ULL,
|
||||
131621703842267136ULL, 4738381338321616896ULL,
|
||||
9223372036854775808ULL,
|
||||
};
|
||||
|
||||
|
@ -33,9 +33,9 @@ R_API size_t r_num_bit_clz32(ut32 val) { // CLZ
|
||||
}
|
||||
|
||||
R_API size_t r_num_bit_clz64(ut64 val) { // CLZ
|
||||
val = val - ((val >> 1) & 0x5555555555555555);
|
||||
val = (val & 0x3333333333333333) + ((val >> 2) & 0x3333333333333333);
|
||||
return (((val + (val >> 4)) & 0x0F0F0F0F0F0F0F0F) * 0x0101010101010101) >> 24;
|
||||
val = val - ((val >> 1) & 0x5555555555555555ULL);
|
||||
val = (val & 0x3333333333333333ULL) + ((val >> 2) & 0x3333333333333333ULL);
|
||||
return (((val + (val >> 4)) & 0x0F0F0F0F0F0F0F0FULL) * 0x0101010101010101ULL) >> 24;
|
||||
}
|
||||
|
||||
R_API size_t r_num_bit_count(ut32 val) { // CLZ
|
||||
|
Loading…
Reference in New Issue
Block a user