C實現與 uint64 t 相同功能的類

2022-10-04 02:06:09 字數 2349 閱讀 4163

實現與 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...