實現與 uint64_t 相同的類,如果平台不支援 uint64_t 的話,可以代替之。
目前只完成部分功能,其他功能敬請期待。
uint64.hpp
#include
#include
#include
#程式設計客棧include
#define mc_begin_namespace namespace mc
mc_begin_namespace
#if __byte_order == __big_endian
struct maybe_big_endian : std::true_type {};
#elif __byte_order == __little_endian
struct maybe_big_endian : std::false_type {};
#else
#error "endianness not defined!"
#endif
template
struct uint64_data : public array
uint32_t& second()
uint32_t first() const
uint32_t second() const };
template
struct uint64_data : public array
uint32_t& second()
uint32_t first() const
uint32_t second() const };
class uint64 : public uint64_data
<:array>, maybe_big_endian::value>
friend void swap(uint64& l, uint64& r);};
inline uint64 operator+(const uint64& l, const uint64& r)
inline uint64 operator>>(const uint64& l, unsigned int n)
inline uint64 operator<
uint64.cpp
#include "uint64.hpp"
mc_begin_namespace
uint64::uint64(uint32_t v)
uint64::uint64(const uint64& o)
uint64& uint64::operator+=(const uint64& o) noexcept
return *this;}
uint64& uint64::operator<<=(unsigned int n) noexcept
else if (n < 64) else /*if (n >= 64)*/
return *this;}
uint64& uint64::operator>>=(unsigned int n) noexcept
else if (n < 64) else /*if (n >= 64)*/
return *this;}
void swap(uint64& l, uint64& r)}
mc_end_namespace
test.cpp
#include
#include
#include "uint64.hpp"
#if 1
typedef mc::uint6程式設計客棧4 u64;
inline void ptype()
#else
typedef std::uint64_t u64;
inline void ptype()
#endif
void frm(const char* str)
void data_hex(const u64& v)
std::printf("\n");}
void test()
int main() else
for (int i = 0; i < 20; ++i)
std::printf(" ");
if (mc::maybe_big_endian::value)
std::printf("h <<<< l h <<<< l\n");
else
std::printf("l >>>> h l >>>> h\n");
te程式設計客棧st();
return 0;
}功能還在逐步完善中,小夥伴們記得關注。
本文標題: c實現與 uint64_t 相同功能的類
本文位址:
Base64編碼原理與實現
base64編碼的原理是按bit將每6個bit轉換成base64編碼表中的相應字元。下面是base64的編碼表 0 a 17 r 34 i 51 z 1 b 18 s 35 j 52 0 2 c 19 t 36 k 53 1 3 d 20 u 37 l 54 2 4 e 21 v 38 m 55 3...
Base64編碼原理與實現
base64編碼的原理是按bit將每6個bit轉換成base64編碼表中的相應字元。下面是base64的編碼表 0 a 17 r 34 i 51 z 1 b 18 s 35 j 52 0 2 c 19 t 36 k 53 1 3 d 20 u 37 l 54 2 4 e 21 v 38 m 55 3...
用C 實現Base64演算法
using system using system.text namespace common catch return encode base64加密,採用utf8編碼方式加密 待加密的明文 加密後的字串 public static string encodebase64 string sourc...