跳转至

C++

zip压缩格式为什么是从后往前开始解析的?

通过对ZIP 文件格式的学习,就有了足够的信息能够逐字节手动读取和写入 ZIP 文件,知道为什么zip压缩格式为什么是从后往前开始解析的。

ZIP 文件结构概述

ZIP 文件由多个头部组成,包括本地文件头、中央目录文件头和中央目录结束记录。每个头部由签名和头部数据组成。

C++如何实现FP16(IEEE754-2008)类型?

计算机在进行数值计算时,首先需要对数据进行表示,比如F32、F16、F64、int32、int16、int8等等。特别在深度学习中,如果模型的参数是F32类型,那么计算耗时且保存的参数占用内存大。

为了准确率同时保证计算的速度,一般需要把模型转换成F16类型。F16即是通过16个bit(位)表示浮点数类型。

我们一起看一下:

  • IEEE754-2008如何定义Float32和Float16的?
  • float32和float16如何转换?在C++23版本以下标准库是没有f16类型的。
  • Float16不用转换成float32比较,如何直接比较大小?

c++静态库和动态库全局变量初始化有何不同?

采用动态链接库的问题:版本升级,调用动态库的程序需不需要重新编译,需要考虑动态链接库二进制ABI兼容性问题,比如是否更改了头文件中的结构体,更改了接口函数,添加了虚函数。动态链接库变更以后,如果没有热更新so,需要替换so,重启可执行程序。

静态库的问题,考虑是否存在资源加载多次的问题。