__int128 学习笔记

今天学习到__int128 类型
这是一个处理大数的很奇妙的方法。
正常来说,unsigned long long 已经是可以定义的最大的类型了,但是如果数据范围超过了2^64 就会爆炸。如果要处理比其大一点又不是那么大的数,就可以使用__int128这个定义。
注意:__int128 并不是所有编译器都可以使用。大型比赛不用顾虑,但蓝桥杯一定不要用,会报错。
关于__int128 要注意其输入输出不能直接使用cin和cout,需要自己手写一个按位输入输出的函数才可以。
模板如下:
1.输入流:

__int128 read()
{
    __int128 f=1,w=0;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
        f=-1;
        ch=getchar();
    }
    while(ch<='9'&&ch>='0')
    {
        w=w*10+ch-'0';
        ch=getchar();
    }
    return f*w;
}

2,输出流:

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

你可能感兴趣的:(学习,编程语言)