big_io.cpp

来自「含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种Chec」· C++ 代码 · 共 53 行

CPP
53
字号
/************************************************** BigInt Stream I/O Source File                  ** (C) 1999-2002 The Botan Project                **************************************************/#include <botan/bigint.h>#include <iostream>namespace Botan {/************************************************** Write the BigInt into a stream                 **************************************************/std::ostream& operator<<(std::ostream& stream, const BigInt& n)   {   Encoding code = Decimal;   if(stream.flags() & std::ios::hex)      code = Hexadecimal;   else if(stream.flags() & std::ios::oct)      code = Octal;   if(n == 0)      stream.write("0", 1);   else      {      if(n < 0)         stream.write("-", 1);      SecureVector<byte> buffer = encode(n, code);      u32bit skip = 0;      while(buffer[skip] == '0' && skip < buffer.size())         skip++;      stream.write((char*)buffer.ptr() + skip, buffer.size() - skip);      }   if(!stream.good())      throw Stream_IO_Error("BigInt output operator has failed");   return stream;   }/************************************************** Read the BigInt from a stream                  **************************************************/std::istream& operator>>(std::istream& stream, BigInt& n)   {   std::string str;   std::getline(stream, str);   if(stream.bad() || (stream.fail() && !stream.eof()))      throw Stream_IO_Error("BigInt input operator has failed");   n = BigInt(str);   return stream;   }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?