数据压缩(一)——计算机编程中的各种数据类型,以C为例

任务:总结归纳计算机编程中的各种数据类型,其表示形式和计算方法。重点关注类型转换、数值溢出和移位等操作。

一.C数据类型

  1. 整型(integer)
  • 表示方法
int a; //整型(占用4个字节),最一般的整型数据说明方式
unsigned int a; //无符号整型(占用4个字节)
long int a; //长整型(占用4个字节)
unsigned long int a; //无符号长整型(占用4个字节)
short int a; //短整型(占用2个字节)
unsigned short int a; //无符号短整型(占用2个字节)
  • 表示范围
  1. int 整型默认为有符号数,表示范围是 -32768~32767
  2. unsigned int 无符号整型,表示范围是0~65535
  3. long int 整型默认为有符号数,表示范围是-2147483648~2147483647
  4. unsigned long int 无符号长整型,表示范围是0~4294967295
  5. short int 默认为有符号数,表示范围是-32768~32767
  6. unsigned short int 无符号短整型,表示范围是0~65535
  • 整型溢出
  1. 对于unsigned int来说,溢出后的数会以2^(8*sizeof(type))做模运算
  2. 对于signed int来说,溢出结果为实际计算结果
  • 整型移位

无符号数的移位操作都是逻辑移位。

  • 左移<<
    二进制数按位向左移动,本质为×2.
    有符号数最左端符号一出去时,发生移位溢出,数值符号可能改变。
  • 右移>>
    二进制数按位向右移动,本质为÷2.
    有符号数符号位向右移动后,正数补0,负数补1。
  1. 字符型(character)
char a; //字符型(占用1个字节)

字符型数据内部表示是字符的ASCII码。
字符的ASCII码也可看作-128~127或0~255的一个整数。
3. 浮点型(floating-point)

/*浮点型又称实型,即实数类型*/
float a; //浮点型(单精度)(占用4个字节,小数点后有效位7位)
double a; //双精度型(双精度)(占用8个字节,小数点后有效位15位)
long double a; //(长双精度型)(占16个字节,小数点后有效位19位)

  • 表示范围

float型数据的数值范围为-3.40E+38~3.40E+38
double型数据的数值范围为-1.79E+308~-1.79E+308

  • 表示格式

程序中,书写浮点数的注意要点为:

  1. 整数部分和小数部分可任选,但不可以都没有
  2. 小数点和指数不能同时没有
  3. 指数部分是以一个字母e或E开头,后跟一个整数
  • 浮点数溢出
  1. 浮点数上溢时,被赋予一个无穷大的值,printf函数显示的是inf。
  2. 指数部分已经达到最小值,计算机只好将尾数部分进行右移,空出首位的二进制数,丢弃最后一位的二进制数。
  • 浮点数不支持移位操作

二.类型转换

隐式类型转换

隐式类型转换指的是不需要用户干预,编译器默认进行的类型转换行为。
隐式类型转换转换一般分为两种:内置数据类型、自定义数据类型。
内置数据类型最为常见。
例1:

/*混合类型的算数运算表达式中*/
int a=3;
double b=3.5;
double c=a+b=6.5;//在运算过程中,a会被自动转换为double类型,用转换的结果再和b相加

例2:

/*不同类型的赋值操作时*/
int a=true; //bool型被自动转换为int类型
bool a=5; //int型被自动转换为bool类型

例3:

/*函数参数传值时*/
void first(double a);
first(1); //调用函数时,int型整数1被自动转换为double类型

例4:

/*函数返回值时*/
double add(int a,int b)
{ 	
	return (a+b)
}; //运算结果会自动被转换为double类型后返回

总结:内置数据类型的隐式类型转换都满足一个原则:由低精度向高精度的转换。

显式类型转换

显式类型转换又称为强制类型转换。即人为的将某种类型转换为另一类型。
强制类型转换的转换符:()括号
例:

float a=3.5;
a=(int)a; //将a强制转换为int类型
    原文作者:weixin_41926958
    原文地址: https://blog.csdn.net/weixin_41926958/article/details/104337459
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞