前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HLS Lesson6-数据类型转换

HLS Lesson6-数据类型转换

作者头像
瓜大三哥
发布2018-02-26 14:55:40
1.9K0
发布2018-02-26 14:55:40
举报
文章被收录于专栏:瓜大三哥瓜大三哥

1.整数数据类型

传统的C语言可以采用:数据类型 数据变量 赋值

代码语言:js
复制
int var = -1;
ap_int<6> a_6bit_var_c = -22;//复制
ap_int<6> a_6bit_var_r2(“0b101010”,2);
ap_int<6> a_6bit_var_r8(“0o52”,c);
ap_int<6> a_6bit_var_r10(“-22”,10);
ap_int<6> a_6bit_var_r16(“0x2A”,16);

或者

代码语言:js
复制
ap_int<6> a_6bit_var_r2(“101010”,2);
ap_int<6> a_6bit_var_r8(“52”,c);
ap_int<6> a_6bit_var_r16(“2A”,16);

2.ap_fixed数据类型

ap_[u]fixed<W,I,Q,O>

W表示整个数据位宽,I表示整数部分数据字长,Q表示量化模式,O表示溢出模式。

1.ap_fixed<3,2> var1=1.25;

1.25的二进制表示是01.01,使用<3,2>这种方式则为01.0(所以var1其实等于1)

2.ap_fixed<3,2,AP_RND> var2=1.25;

使用<3,2>这种方式则为01.1(所以var1其实等于1.5)

3.ap_fixed<4,4> var3=19;

19的而己之表示是010011,取到的是低4位0011,所以var3的值为3.

4.ap_fixed<4,4,AP_RND,AP_SAT> var4=19;

AP_SAT表示4为有符号数表示的最大数值7。

3. 浮点数据类型

与c语言类似。

double vf2(5.0);

float vf3(5.0f);//单精度浮点型需要加上后缀f

还有数学库hls_math.h

隐式数据类型转换:(promotion,扩展)

ap_uint<8> res;

ap_int<4> v1=-4;

ap_uint<4> v2=4;

res =v1; //进行了扩展,有符号位扩展res = 252

res =v2; //进行了扩展,无符号位扩展res = 4

conversion(转换,可能导致数据错误)

ap_int<4> v5=3;

ap_uint<4> v6=3;

ap_int<2> res2;

res2=v5; //只取了低两位,11,对于有符号数,则为-1

res2=v6; //只取了低两位,11,对于有符号数,则为-1

ap_fixed<4,2> v1=1.25;

ap_fixed<3,2,AP_RND> v3 = v1; //1.5,精度有所损失

显式类型转换:

(1)通过()进行转换

(2)采用函数的方式

代码语言:js
复制
 ap_uint<3> i3 = 4;
 ap_uint<4> i4 = 10;
 ap_ufixed<6, 4> i5 = i4 / i3;
 cout << "This value of i5 : \t" << i5 << endl;
 ap_ufixed<6, 4> i6 = (ap_ufixed<6, 4>)i4 / i3;
 cout << "This value of i6 : \t" << i6 << endl;
 ap_ufixed<6, 4> i7 = (ap_ufixed<6, 4>)(i4) / i3;
 cout << "This value of i7 : \t" << i7 << endl; 

获取变量类型信息:typeid();需要加入头文件:#include<typeinfo>

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.整数数据类型
  • 2.ap_fixed数据类型
  • 3. 浮点数据类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档