视频链接: 6课:数据类型的转换_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1bt41187RW?spm_id_from=333.788.videopod.episodes&vd_source=a75d5585c5297210add71187236ec90b&p=6
目录
1.数据类型的转换
2.自动类型转换
2.1隐式数据转换
2.2 显式类型转换
位宽的决定
获取数据类型的信息
总结
1.数据类型的转换
ap_int<6> a_6bit_var_c = -22;
ap_int<6> a_6bit_var_c(-22);
ap_int<6> c("101010",2);//后面代表进制 也可以在为0b0100 0B0100 0O/ 0o0100 0x/X 0100等
//建议最好不要在同一行初始化多个变量
ap_[u]fixed<W,I,Q,O>
W:整个数据的位数
I:整数的位数
Q:量化模式(低位)
O:溢出模式(高位)
举个例子,如果01.01代表1.25,默认的ap_fixed<3,2>会变为01.0(1.0)
而ap_fixed<3,2,AP_RND> 保留为01.1 为1.5.
如果ap_fixed<4,4,AP_RND,AP_SAT>定义一个19,即只能表示为7(有符号数);
hls_math.h对math.h和cmath.h都进行了支持.单精度浮点数与C相同,如5.0f;
2.自动类型转换
2.1隐式数据转换
如果是高精度向低精度转,可能导致精度损失.
2.2 显式类型转换
位宽的决定
获取数据类型的信息
总结
根据需求选择合适的数据类型至关重要,不仅可以提高资源利用率,还可以有效提高速度.