【C语言】-- 整型数据的存储

2023-11-06

目录

1.数据类型的分类

2.基本类型

2.1 基本类型大小

2.2 整型家族~

2.3 数据的存储形式

2.4 整形数据的存储方式


1.数据类型的分类

在C语言中有如下类型:

2.基本类型

2.1 基本类型大小

一个变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的。

类型 / 大小(单位字节)

VS32位平台

VS64位平台

char

1

1

short

2

2

int

4

4

long

4

8

long long

8

8

float

4

4

double

8

8

type*

4

8

2.2 整型家族~

char                                              大小范围

        unsigned char                        0~255  (0--2^8-1)

        signed char                            -128~127  (-2^7--2^7-1)

short

        unsigned short [int]                0~65,535  (0--2^16-1)

        signed short [int]                    -32768~32757  (-2^15--2^15-1)

int

        unsigned int                           0~4,294,967,295  (0--2^32-1)

        signed int                               -2,147,483,648~2,147,483,647  (-2^31--2^31-1)

long

        unsigned long [int]                (0--2^32-1)(32位)                 (0--2^64-1)(64位)

        signed long [int]                    (-2^31--2^31-1)(32位)          (-2^63--2^63-1)(64位)

2.3 数据的存储形式

数据在计算机中都是以二进制的形式来存储的,而计算机中的整数有三种2进制表示方法,即原码、反码和补码

整型数据存放内存中其实存放的是补码

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

2.4 整形数据的存储方式

整型的存储有大小端两种方式

大端(存储)模式,是指数据的低位字节内容保存在内存的高地址中,而数据的高位,保存在内存的低地址中;

小端(存储)模式,是指数据的低位字节内容保存在内存的低地址中,而数据的高位,保存在内存的高地址中。

注意:数据存储的单位也是字节

2.3.1 VS平台调试查看存储方式:

总结:

1.VS平台下的数据的存储方式是小端存储模式

2.整型数据的存储单位是字节,如图十六进制的01020304,低位字节的04在存储时被存储到内存的低地址处,是整个字节放到低地址,字节内部数据的存储不发生变化。

2.3.2 VS平台设计程序查看存储方式:

方法一:指针法(利用了指针强制类型转换)

#include <stdio.h>
int check_sys()
{
	int i = 1;//0x 00 00 00 01 
	return (*(char*)&i);//将整型地址强制类型转换为字符类型的指针,再解引用取一个字节的内容
}
int main()
{
	int ret = check_sys();
	if (ret == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	return 0;
}

方法二:联合体法(利用了联合体空间共用的特点

int check_sys()
{
	union
	{
		int i;
		char c;
	}un;
	un.i = 1;
	return un.c;
}
int main()
{
	int ret = check_sys();
	if (ret == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	return 0;
}

在VS平台上的两种程序测试结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言】-- 整型数据的存储 的相关文章

  • Linux-编写一个自己的命令

    前言 1 在Linux中 我们对文件路径进行操作都需要输入命令 那么 有人可能就会有疑惑了 命令是什么东西 我们是否也可以创造出自己的命令呢 答案是可以的 命令本身其实就是可执行文件 但是 与普通的可执行文件的不同之处在于 命令的可执行文件
  • unity 内置图标

    lt 转 Unity内建图标列表 weixin 30878361 2018 11 14 12 32 00 211 收藏 文章标签 游戏 移动开发 ui 最后发布 2018 11
  • 一款好用的富文本编辑器

    目录 项目功能介绍 资源介绍 swagger接口文档 编辑器功能展示 项目目录讲解 前端 后端 部分代码展示 前端 富文本编辑器页面App vue 后端 文章查询保存 serviceImpl 功能演示 源码分享 给大家分享一个好用的富文本编

随机推荐

  • apt-get update和 upgrade的区别

    update update is used to resynchronize the package index files from their sources The indexes of available packages are
  • 【腾讯云 Cloud Studio 实战训练营】提升开发效率与协作:探索腾讯云 Cloud Studio 的强大功能与优势

    文章目录 一 前言 二 认识腾讯云 Cloud Studio 2 1 什么是云端开发环境 2 2 CDE 的特点与优点 2 2 1 提高效率 开发环境一键运行 2 2 2 提高生产力 可以并行的工作 2 2 3 开发更加规范 2 2 4 提
  • vscode设置sdk_1 visual studio code 配置C++开发环境 (windows 开发环境)

    0 引言 最近帮GF 不幸变成ex了 配置C 开发环境 一开始想给她装个visual studio13完事 但是一想到自己安装以及使用时的诸多麻烦 就有点退却 觉得没有这个必要 正好了解到vscode大行其道 决定按照官网指示配置一版 由于
  • 【STM32】中断与NVIC以外部中断为例

    前言 在stm32中姑且可以认为 异常就是中断 单片机上电之后 首先执行启动文件 开辟堆栈之后 开始初始化中断向量表 NVIC NVIC NVIC是嵌套向量中断控制器 控制着整个芯片中断相关的功能 它跟内核紧密耦合 是内核里面的一个外设 三
  • 专家PID控制matlab程序

    专家PID控制matlab程序 1 专家PID控制 专家PID控制的实质是 基于受控对象和控制规律的各种知识 无须知道被控对象的精确模型 利用专家经验来设计PID参数 专家PID控制是一种直接型专家控制器 典型的二阶系统单位阶跃响应误差曲线
  • 【Linux】这篇文章让你彻底搞懂什么是环境变量

    深入理解环境变量 一 什么是环境变量 二 常见的环境变量 2 1 PATH 2 2 HOME 2 3 SHELL 三 查看与设置变量 四 如何理解命令行带参 五 如何通过代码如何获取环境变量 一 什么是环境变量 总述 环境变量 enviro
  • Win10安装Linux虚拟机-安装与使用

    Win10安装Linux虚拟机 安装与使用 1 VMware 的下载 VMWare虚拟机软件是一个 虚拟PC 软件 它使你可以在一台机器上同时运行二个或更多Windows DOS LINUX系统 下载地址 https customercon
  • ie浏览器打不开闪退_教你修复win7IE浏览器闪退的问题

    使用win7系统的朋友不少会使用IE浏览器来访问网页的时候 经常会出现IE浏览器自动退出了 另外在闪退前会有个提示 出现一个问题导致程序停止正常工作 那么这样的问题该怎样解决呢 下面就跟小编来了解一下怎样修复IE浏览器问题吧 Win7 IE
  • Flex3.2 Lists & Grids 内存泄漏

    所有继承于ListBase的类List DataGrid AdvancedDataGrid and TileList 在选中列表中的一项后 增加了鼠标相关Listener 导致泄漏 SDK3 3中已经修改 Sdk3 2中修复补丁http w
  • 使用plsql访问远程数据库

    1 plsql输入ip端口数据库实例名直接登录 Username 用户名 如 scott Password 用户对应密码 如 tiger Database 数据库位置 语法为 ip 端口号 数据库实例名 如 192 168 1 156 15
  • Nand Flash的同步、异步、ONFI、Toggle

    1 SDR和DDR SDR Single Data Rate 写读数据使用上升沿或下降沿来触发 因为只用上升沿或下降沿 对信号准确性要求较低 DDR Double Data Rate 写数据时通过MCU来控制DQS信号跳变沿来触发 即上升沿
  • android fragment 重复创建的问题

    解决fragment重复创建目前用到有两个方法 1 fragment同viewpager一起使用 vp setOffscreenPageLimit 3 设置缓存页面的个数 2 fragment单独使用 在onCreateView 方法中加入
  • 用C语言写UTF-8编码的文件

    原文地址 http blog csdn net zaffix article details 7217701 为实现用C语言写UTF 8编码的文件 测试了以下两种情况 第一种情况 为 fopen 指定一个编码 然后写入 wchar t 字符
  • Flink笔记14:Flink之window起始点的确定与watermark使用详解

    1 window起始时间的确定 在TimeWindow java中有如下方法来确定window的起始时间 public static long getWindowStartWithOffset long timestamp long off
  • win32 API函数大全

    1 API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelC
  • Python网络爬虫之数美滑块的加密及轨迹之动态js参数分析

    前言 数美滑块的加密及轨迹等应该是入门级别的吧 用他们的教程和话来说 就一个des 然后识别缺口位置可以用cv2或者ddddoc 轨迹 也可以随便模拟一个 这些简单的教程 在csdn已经有一大把可以搜到的 但是却很少人告诉你 它的js好像是
  • CMake 命令

    1 Usage cmake options
  • MAC安装渗透测试靶机

    1 mac 安装docker 直接到docker官网下载docker dmg 下载前先要注册docker 下载后直接安装就可以了 docker version 就能看见安装的版本 我的版本17 03 1 ce 2 下载docker镜像ima
  • 了解l电源纹波PSRR----转摘

    PSRR 就是 Power Supply Rejection Ratio 的缩写 中文含意为 电源纹波抑制比 也就是说 PSRR 表示把输入与电源视为两个独立的信号源时 所得到的两个电压增益的比值 基本计算公式为 PSRR 20log Ri
  • 【C语言】-- 整型数据的存储

    目录 1 数据类型的分类 2 基本类型 2 1 基本类型大小 2 2 整型家族 2 3 数据的存储形式 2 4 整形数据的存储方式 1 数据类型的分类 在C语言中有如下类型 2 基本类型 2 1 基本类型大小 一个变量的创建是要在内存中开辟