整形数据和浮点型数据在内存中的存储

前言

在我之前的文章里,讲过了整数的二进制表示形式有三种,即原码、反码、补码三种形式以及他们的相互转换方式,具体可见链接: C语言初阶操作符学习笔记,本篇文章将更加深入的讲解数据类型以及他们是如何存储的。

数据类型介绍

数据类型的基本归类

根据数据在内存中的存储方式,我们可以将数据分为两大家族:整形家族和浮点型家族。

整形家族

整形家族包括:char,short,int,long,long long(C99)。由于字符在内存里存储的是他们的ASCII码值,所以将char类型归结到整型家族里;long long 类型是在C99标准中加入的。这五种整形又被细分为:
char:
char / signed char / unsigned char
short(short int):
signed short / unsigned short (short等价于signed short)
int:
signed int / unsigned int (int等价于signed int)
long(long int):
signed long / unsigned long (long等价于signed long)
long long(long long int):
signed long long / unsigned long long (long long等价于long long short)
在我之前的文章里除了char未介绍,其他整型数据类型的大小以及取值范围,我已经介绍过了,链接放在这里(部分数据类型的大小以及转换说明符的用法),现在我重点说一下char类型。
char是和signed char等价还是unsigned char等价,这在C标准里是未定义的,等价于哪一个取决于编译器,本篇文章使用的是VS2022编译器,所以char=signed char。

类型 大小(字节) 数值范围
char 1 -2^7 - 2^7-1

浮点型家族

浮点型家族包括两类:float 类型和 double 类型。

类型 大小(字节)
float 4
double 8

关于这两种类型的精度,取值范围等特性在头文件 float.h中可以找到。

大小端字节序

除了char类型变量只占一个字节的内存大小,其他数据类型都至少占据2个以上的字节大小,又因为在内存里以字节为单位存储数据,那么存储的时候接涉先后顺序,举个栗子:

#include <stdio.h>
int main()
{
   
	int a <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值