zoukankan      html  css  js  c++  java
  • 类型转换

    1,当我们把一个非布尔类型的算术变量赋给布尔类型时,初始值为0则结果为false,否者结果为true.

    1 if(0){// false
    2 }
    3 if(-1){// true
    4 }
    5 if(1){// true
    6 }
    7 // 总结:非0即真

    2.当我们把一个布尔值赋给非布尔值时,初始值为false则结果为0,初始值为true则结果为1.

    1 int a=false;// 0
    2 int b=true;// 1

    3.当我们把一个浮点数赋值给整数类型时,进行了近似处理.结果值将仅保留浮点数中小数点之前的部分.

     1 int i = 3.14;// 3 

    4. 当我们把一个整数值赋给浮点类型时,小数部分记为0.如果该整数所占的空间超过了浮点类型的常量,精度可能有损失.

     1 double i = 2;// i = 2.0 

    5.当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数.

     1 unsigned char ch = -100;// -100%256=156 

    6.当我们赋给带符号类型一个超出它表示的范围的值时,结果是未定义的.此时,程序可能继续工作,可能崩溃,也可能生成垃圾数据.

     1 signed char c = 256// 未定义,访问可能要出错 

    7.含有无符号类型的表达式时,先把其他变量转换(转换过程与第5点类似)为无符号类型,然后进行运算.注意当两个无符号类型的

    相减时永远不为负.

    1 unsigned int u = 10;
    2 int i = -42;// 32位
    3 cout<< u+i<<endl;// -42%2^32=4294967254+10 = 4294967264
    4 unsigned int u1 = 42,u2 =10; 5 cout<< u1-u2<<endl;// 32 6 cout<< u2-u1<<endl;// 负数取摸后的值
  • 相关阅读:
    时间复杂度和空间复杂度的故事
    Go -- 并发编程的两种限速方法
    Go -- type 和断言 interface{}转换
    Go -- 实现二叉搜索树
    Go语言程序的状态监控
    Go -- 中开启gctrace
    Go --- GC优化经验
    Mysql 性能优化20个原则(4)
    Mysql 性能优化20个原则(3)
    查看 activex 组件的方法
  • 原文地址:https://www.cnblogs.com/studweijun/p/5277896.html
Copyright © 2011-2022 走看看