__int128的使用方法

__int128 就是占用128字节的整数存储类型。由于是二进制,范围就是 -2^127~2^127-1,如果使用了 unsigned __int128,则范围变成 00 ~ 21282128,即约39位数,这在一定程度上可以替代高精度运算实现大数运算,而且操作难度更低,所以在数据范围不超过的情况下,都可以使__int128。

操作

由于_int128只能实现四则运算,不能用cin,cout,scanf,printf输入输出,我们首先应该写个快读和快写的函数;

快读函数

__int128 read()
{
	//直接在函数里面实现读字符串操作更简洁
	__int128 res=0;//初始结果赋值0
	char scan[1005];
	scanf("%s",scan);
	for(int i=0;i<strlen(scan);i++)
		res*=10,res+=scan[i]-'0';//实现进位
	return res;//返回__int128类型
}

快写函数

void print(__int128 num)
{//递归调用,实现从高位向低位输出
	if(num>9) 
		print(num/10);
	putchar(num%10+'0');
}

由于 __int128 仅仅是 GCCGCC 编译器,不在C++98/03/11/14/17/20C++98/03/11/14/17/20 标准内,且仅 GCC4.6GCC4.6 以上64位版本支持,很多配套都没有,只有四则运算功能 除了要自己写输入输出。使用方法与 int long long 无异:

 

  • 13
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
av_dump_format是FFmpeg库中的一个函数,用于打印输入文件或输出文件的详细信息,包括文件格式、流信息、编解码器信息等。 使用方法如下: 1. 引入FFmpeg库头文件: ``` #include <libavformat/avformat.h> ``` 2. 声明AVFormatContext指针变量: ``` AVFormatContext *fmt_ctx = NULL; ``` 3. 打开输入文件或输出文件: ``` int ret = avformat_open_input(&fmt_ctx, filename, NULL, NULL); if (ret < 0) { // 打开失败,处理错误 } ``` 4. 打印文件信息: ``` av_dump_format(fmt_ctx, 0, filename, 0); ``` 参数说明: - 第1个参数:AVFormatContext指针,表示要打印的文件的上下文; - 第2个参数:整型变量,表示要打印的流的索引;如果为0,则表示打印所有流的信息; - 第3个参数:字符串,表示文件名或URL; - 第4个参数:整型变量,表示是否打印详细信息;如果为0,则只打印基本信息,否则打印详细信息。 5. 关闭文件: ``` avformat_close_input(&fmt_ctx); ``` 完整示例代码: ``` #include <libavformat/avformat.h> int main(int argc, char *argv[]) { AVFormatContext *fmt_ctx = NULL; const char *filename = "input.mp4"; int ret = avformat_open_input(&fmt_ctx, filename, NULL, NULL); if (ret < 0) { printf("Failed to open input file\n"); return -1; } av_dump_format(fmt_ctx, 0, filename, 0); avformat_close_input(&fmt_ctx); return 0; } ``` 运行结果: ``` Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf57.83.100 Duration: 00:00:01.00, start: 0.000000, bitrate: 524 kb/s Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 640x360 [SAR 1:1 DAR 16:9], 528 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊巴拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值