Rename rotate_left to the more friendly rotatel
This commit is contained in:
parent
011ac70a9d
commit
990d5ab806
@ -35,7 +35,8 @@ const uint8_t BITMASK_8BITS = 0xFF;
|
||||
|
||||
|
||||
template <typename T>
|
||||
T rotate_left (const T &value, size_t magnitude) {
|
||||
T
|
||||
rotatel (const T &value, size_t magnitude) {
|
||||
magnitude %= sizeof (T) * 8;
|
||||
return (value << magnitude) | (value >> sizeof (value) * 8 - magnitude);
|
||||
}
|
||||
|
5
test/.gitignore
vendored
5
test/.gitignore
vendored
@ -1,13 +1,13 @@
|
||||
/*.log
|
||||
/*.trs
|
||||
/adler*
|
||||
/backtrace*
|
||||
/bitwise
|
||||
/checksum*
|
||||
/float*
|
||||
/hton*
|
||||
/ip*
|
||||
/json
|
||||
/json-check*
|
||||
/*.log
|
||||
/maths*
|
||||
/matrix*
|
||||
/option
|
||||
@ -15,4 +15,5 @@
|
||||
/range*
|
||||
/region*
|
||||
/signal*
|
||||
/*.trs
|
||||
/version*
|
||||
|
@ -9,6 +9,7 @@ AM_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
TEST_BIN = \
|
||||
backtrace \
|
||||
bitwise \
|
||||
checksum \
|
||||
float \
|
||||
hton \
|
||||
@ -31,6 +32,9 @@ backtrace_CPPFLAGS = $(COMMON_CXXFLAGS)
|
||||
backtrace_LDADD = $(builddir)/../libutil.la
|
||||
backtrace_SOURCES = backtrace.cpp
|
||||
|
||||
bitwise_LDADD = $(builddir)/../libutil.la
|
||||
bitwise_SOURCES = bitwise.cpp
|
||||
|
||||
checksum_LDADD = $(builddir)/../libutil.la
|
||||
checksum_SOURCES = checksum.cpp
|
||||
|
||||
|
21
test/bitwise.cpp
Normal file
21
test/bitwise.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "../bitwise.hpp"
|
||||
|
||||
int
|
||||
main (int, char**) {
|
||||
CHECK_EQ (rotatel (uint8_t (0x0F), 0), 0x0F);
|
||||
CHECK_EQ (rotatel (uint8_t (0x0F), 4), 0xF0);
|
||||
CHECK_EQ (rotatel (uint8_t (0xF0), 4), 0x0F);
|
||||
CHECK_EQ (rotatel (uint8_t (0x0F), 8), 0x0F);
|
||||
|
||||
CHECK_EQ (rotatel (uint16_t (0xABCD), 0), 0xABCD);
|
||||
CHECK_EQ (rotatel (uint16_t (0xABCD), 4), 0xBCDA);
|
||||
CHECK_EQ (rotatel (uint16_t (0xABCD), 8), 0xCDAB);
|
||||
CHECK_EQ (rotatel (uint16_t (0xABCD), 12), 0xDABC);
|
||||
CHECK_EQ (rotatel (uint16_t (0xABCD), 16), 0xABCD);
|
||||
|
||||
CHECK_EQ (rotatel (uint32_t (0x12345670), 12), 0x45670123);
|
||||
|
||||
CHECK_EQ (rotatel (uint64_t (0x1234567890ABCDEF), 12), 0x4567890ABCDEF123);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user