欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言入门第七篇,强制类型转换和ASCll编码

程序员文章站 2022-07-12 16:50:54
...

这篇我们再说说数据类型,我们看看下面这个例子:

#include<stdio.h>
int main()
{
    int a;
    a=9/2;
    printf("%d\n",a);
    return 0;
}

这里声明的变量为整型变量,所以输出a的值为4,没有小数位。有些人说用变量a用float呢?

#include<stdio.h>
int main()
{
    float a;
    a=9/2;
    printf("%f\n",a);
    return 0;
}

这样输出小数点后面依然没有数值。那怎么办呢?这就是这一篇要讲的强制类型转换。我们在C语言中经常遇到上面的情况,我们想得到更加精确的结果。上面的情况我们只需要把其中一个数字改为小数形式,让编译器知道他是小数就可以了。

#include<stdio.h>
int main()
{
    float a;
    a=9.0/2;
    printf("%f\n",a);
}

这只是常量的方式,那么如果是变量呢?

#include<stdio.h>
int main()
{
    int a,b;
    float c;
    a=9;
    b=2;
    c=(float)a/b;
    printf("%f\n",c);
    return 0;
}

所以(float)a中的(float)就是强制类型转换,它将a由一个整型变化成了单精度浮点数。注意强制类型转换可能会损失精度。所有的数值类型都可以互相转换。

下面我们来讲讲字符类型,前面我们说了字符类型占一个字节,一个字节8位。我们说过计算机底层只能存储二进制,那么字符怎么表示呢?聪明的人类发明了ASCll编码,标准ASCll表由7位(最高位通常保留为0,传输时作为奇偶校验位)二进制将128个符号和字符编码而成。如下表:
C语言入门第七篇,强制类型转换和ASCll编码

如果觉得上面的表看的比较晕的话,我们来看看下面的代码:

#include<stdio.h>
int main()
{
    char b='a';
    printf("%d\n",b);
    return 0;
}

运行上面的代码,我们就知道屏幕上显示的是97,二进制为‭01100001‬,而上面的表中97正好对应着小写的a。这个表其实不用记住,大家知道字符在计算机里面是怎么存储的就好了。

总结

这篇主要是说明强制类型转换和ASCll编码,需要自己下来多敲敲代码,熟悉强制类型转换,也必须清楚了解ASCll编码。