c++中__int128的输入和输出

c++中有的时候不想写高精度的时候可以考虑使用这个,但是数据范围也有可能超过,那就只好用高精度来写了。

code:

#include <iostream>
using namespace std;

inline void read(__int128 &X)
{
    X = 0;
    int w=0; char ch=0;
    while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
    while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
    if (w) X = -X;
}

void print(__int128 x)
{
    if (!x) return ;
    if (x < 0) putchar('-'),x = -x;
    print(x / 10);
    putchar(x % 10 + '0');
}

int main(){
    __int128 x;
    //大概是10的39次方级别
    read(x);
    print(x);
}

 

posted @ 2020-09-03 09:49  kstranger  阅读(3384)  评论(1)    收藏  举报