【C语言】基本数据类型

C语言的数据类型根据其不同的特点,可以分为基本数据类型、构造类型和空类型。
在这里插入图片描述

一、整数

数据类型标识符比特数取值范围
整型[signed] int32-2147483648~2147483647
整型unsigned int320~4294967295
短整型[signed] short [int]16-32768~32767
短整型[signed] short [int]16-32768~32767
短整型unsigned short [int]160~65535
长整型long [int]32-2147483648~2147483647
长整型unsigned long [int]320~4294967295

表中"[]"内的部分是可以省略的。

不同计算机中,整型的比特数是不同的,有写计算机中整型为16位,有些为32位。它们三者之间只是遵循如下简单规则:
短整型 ≤ 整型 ≤ 长整型
大部分计算机用第一位表示正负:1是负,0是正,用剩下31位来表示数字。

注意,各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。
以下列出了32位系统与64位系统的存储大小的差别(windows 相同):
在这里插入图片描述
参考:C 数据类型

二、浮点数

浮点数就是小数,因为小数点可以在数字间浮动。

数据类型 | 标识符 | 比特数 | 有效数字
-------- | ----- | ----- | ----- | -----
单精度 | float | 32 | 6~8
双精度 | double | 64 | 15~16
长双精度 | long double | 128 | 18~19
有效数字在内存中的存储方式是以指数的形式表示

二进制转换为十进制:
在这里插入图片描述

十进制转换为二进制:
1、整数部分采用 "除2取余,逆序排列"法。
2、小数部分要使用“乘 2 取整法”。

浮点数的表示方法有很多中,最常见的是IEEE 754标准:625.9表示成二进制为1001110001.11100110011=1.00111000111100110011001×2^9
在32位浮点数中,第一位表示数字的正负,接下来8位存指数,剩下23位存有效位数。
第一位为:0
小数部分为:00111000111100110011001
指数部分为:9+127=136=10001000(B)
在这里插入图片描述
图中所示为浮点数在内存中的存储形式。
详细参考以下博客:
[1]: 浮点数在计算机中存储方式
[2]: 浮点数在内存中的表示移位存储难点的理解

三、字符

数据类型 | 标识符 | 比特数 | 取值范围
-------- | ----- | ----- | ----- | -----
字符型 | [signed] char| 8 | -128~127
字符型 | unsigned char | 8 | 0~255
字符变量和整型变量在内存中存储的内容实质是一样的。
只是计算机在识别这个数据时,按字符的类型去识别。在单片机开发时,倘若在液晶屏上显示一个字符,首先编程时,定义一个字符型的变量并用字符对该变量进行初始化,比如,char buf = ‘a’; 然后用液晶显示函数进行显示。
其中,编译器根据ASCII表或者其它字符编码表,将对应的字符转换为编码表中对用的数字,而液晶显示功能函数通过该数字在字库中查找对用字符所对应的字符图像,然后进行液晶显示。
所谓的字库是字符对应图形数据的集合。

ASCII,美国信息交换标准代码,发明于1963年,ASCII是7位代码,足够存128个不同值。后来扩展了后面的128。
但是ASCII的8位编码方式无法满足中文的数千个字符,为了解决这个问题,每个国家都发明了多字节编码方案,但不互相兼容,所以Unicode诞生了——统一所有编码的标准,设计于1992年,解决了不同国家不同标准的问题,Unicode用一个统一编码方案,最常见的Unicode是16位的,有超过一百万个位置,对所有语言的每个字符都够了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值