C语言中不同类型数据之间的赋值

整数与整数之间
一、长度相等(在内存中存储的位数相等)的两个不同的类型的数据之间的赋值

在计算机中的存储内容不变,只是数据按照不同的编码格式来解析。

二、 赋值给 (短 = 长)

截取低位,然后按照短整数的数据类型解析。

三、 赋值给 (长 = 短)

其中,短转长又分为三种情况:
1. 两个数据都是无符号的数据,短整数直接高位补0。
2. 两个数据都是有符号的数据,短整数进行符号位扩展。
3. 两个数一个是有符号数,一个数是无符号数,那么先将短整数进行位数扩展,过程中保持数值不变,然后按照长整数的数据类型解析数据。

四、整数与浮点之间
1.浮点数转整数

截取整数部分,赋值给a
int a = 3.54
a 的值为 3

2.整数转浮点数

小数部分为0,整数部分的值与其整数的值相等。
float b = 3;
b 的值是 3.0
  1. float 与 double 之间
double 转 float 将会丢失精度。
float 转 double 值不变。

注:

整数在计算机中都是以补码的形式存储的。

#include <stdio.h>
 int main()
{
    unsigned int a = 50000;
    short b =-55;
    a = b;
    printf("%d", a);
    return 0;
}

在这里插入图片描述