数据类型转换的常见错误

  1. int cost = 12.99 // 实型常量默认为double类型,如此定义,会将小数部分直接截去,之后cost = 12

  2. float pi = 3.1415926536 // 实型常量默认为double类型,有效位默认>=10位,而float有效位为6位,所以pi会丢精度为3.14159

  3. *检测数据转换的常见错误*/
    # include <stdio.h>

    int main(void)
    {
      int f = 4;
      int g = 5;
      float h = 5.0f;

      printf("%d\n", f, g);
      printf("%d %d\n",f);
      printf("%d\n", h);

      return 0;
    }
    /*输出结果
    0
    4 0
    0
    */
    //不同的编译器的输出结果是不同的,因此,参数数目和类型一定要匹配


  4. printf(“%1.2f”, a);//表示把a输出保留2小数用四舍五入,且整个数字占用1格。

  5. float num = 126.2    //其中num在作为参数传递时会转换为double存放在内存中

  6. 总结

  7. 当出现在表达式里时,char 和short 都会转换成int,视情况转换成unsigned int。,float转化成double类型

  8. 在混合运算中低级类型转换成高级类型;由高到低 long double ,double ,float,unsigned long long ,unsigned long, long, unsigned int, int

  9. 在赋值语句中计算结果会被转换成将要被赋予值的那个变量的类型。

  10. 当做函数参数传递的时候,char 和short 转化成int 而float 转化成double

  11. int b;b+5;中5默认是int

转载于:https://my.oschina.net/u/2423028/blog/483875

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Verilog中,数据类型转换是将一个数据类型转换为另一个数据类型的过程。Verilog使用赋值语句自动将一种类型的数值转换为另一种类型。在进行数据类型转换,Verilog会根据转换的数据类型进行自动截断、扩展或调整。这种自动转换的规则在不同的情况下有所不同,如赋值、运算等。 Verilog中的数据类型转换可以通过不同的方式实现,其中最常见的是使用$cast函数。$cast函数用于在不同的数据类型之间进行转换。它可以将一个数据类型转换为另一个数据类型,包括基本数据类型、数组、结构体和枚举类型等。$cast函数的使用格式如下: ``` $cast(target_type, expression) ``` 其中,target_type表示要转换的目标数据类型,expression表示要转换的表达式。$cast函数会将expression从原始数据类型转换为target_type,并返回转换后的值。 Verilog中的数据类型转换还可以通过静态转换来完成。静态转换是指通过类型转换操作符来显式地将一种数据类型转换为另一种数据类型。在Verilog中,常用的类型转换操作符包括`'类型名(表达式)`和`$signed(表达式)`等。其中,`'类型名(表达式)`用于将表达式转换为指定的类型,而`$signed(表达式)`用于将表达式转换为带符号的类型。 除了上述明确的数据类型转换方式,Verilog中还存在一些隐性的数据类型转换。这些隐性的数据类型转换是Verilog编译器根据上下文自动进行的转换,以保证赋值的兼容性。这种隐性的数据类型转换可能会导致一些不期望的结果,特别是在枚举类型和数据流中。因此,在进行数据类型转换,需要注意类型的兼容性,以避免出现错误的结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值