永发信息网

C语言 实现int128位+-*/ 别给我c++的什么类我不会c++

答案:5  悬赏:40  手机版
解决时间 2021-02-19 12:15
如果 不给代码的话
就描述一下 如何实现 细致一点啊 我是小白啊 谢谢啦
最佳答案
有一个很神奇的类型是__int128这个可以应该可以实现你的想法,
讲道理的话,编译器的gcc是不支持__int128这种数据类型的,比如在codeblocks 16.01/Dev C++是无法编译的,但是提交到大部分OJ上是可以编译且能用的。C/C++标准。IO是不认识__int128这种数据类型的,因此要自己实现IO,其他的运算,与int没有什么不同。
但是官方上写了GCC提供了两种128位整数类型,分别是__int128_t和__uint128_t,分别用于声明有符号整数变量和无符号整数变量。
由于这种大整数无法使用函数printf()输出其值,所以自己做了一个整数转字符串函数write(),用于实现128位整数的输出。
亲测oj和洛谷可以AC
加法模板如下
#include <bits/stdc++.h>
using namespace std;
inline __int128 read()
{
    __int128 x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
    {
        x=x*10+ch-'0';
        ch=getchar();
    }
    return x*f;
}

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

int main()
{
    __int128 a = read();
    __int128 b = read();
    write(a + b);
    return 0;
}
全部回答
如果你有耐心的话,可以尝试用数组实现加减乘除运算,这样可以保证很大程度上的精度
1、在C语言中,并没有任何数据类型可以表示精确的128位数。所以要表示128位数,就必须用数组模拟。比如,用字符数组模拟,每位字符表示一位数,使用'0'~'9'表示各个位上的数值。 2、例如 char num[129] = "12345678"; 表示数字12345678。 由于128位过长,就不举128位的例子了。 输入输出均可以用字符串的方式。 另外,做计算的话,就必须自己写函数了,如加减乘除模除等,对于这类实现,在算法中称为大数计算,如果需要,可以对此进行搜索,有很多优秀算法。
其实就是把你自己列竖式计算四则运算的过程翻译成代码就好。效率低一点的话就把10进制的每一位数码弄成一个int,然后按照竖式运算来计算;效率高一点就把一个unsigned int看成一位数码,整个整数看做“4294967296进制”,运算道理一样
18
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何在家简单地处理狗狗皮肤病?
孕妇,25岁,GP,39周妊娠,胎儿估计3800g,L
拉令在哪里啊,我有事要去这个地方
k9905火车终点站在,北站,还是东站
沙西岛休闲庄我想知道这个在什么地方
【实的拼音】实的拼音
你会和一个你不爱的人结婚吗。问题是你对男人
刺客信条2蒙泰利吉奥尼里的太阳神雕像在哪
请问,谁知道定频和变频空调,哪个更省电
冰川期天气多冷?就像电影拍的那样,瞬间把人
一个数减去括号里的数减去另一数的简便方法
绿岛蔬菜超市这个地址在什么地方,我要处理点
圣经和合本是什么意思
同一块宅基地为什么国家前脚刚拆完,后脚又盖
中国寄东西寄到巴西用怎么快递好,还有就是国
推荐资讯
对于女性来说妻宫有克,两妻无刑是什么意思?
新武林外传回风舞柳加基础攻击么
【2011年南京中考】2011年南京英语中考卷15.
急寻一首快节奏的英文歌lalalalala sorry sor
福兴天地在什么地方啊,我要过去处理事情
祭祖称呼:故先祖- ;故先考- ; 故显考- ;故
Matlab 如何快速查找0元素
孙子给老年人买什么礼物好
哑舍二宣传视频的背景音乐是什么
中缅玉市在哪里啊,我有事要去这个地方
Beats耳机到底值不值得买
湖景美宅我想知道这个在什么地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?