C语言数据存储归类介绍
目录
- 数据类型的介绍
- 类型的基本归类
- 整型在内存中的存储
- 什么是大小端
- 浮点数在内存中的存储
- 浮点数在内存中的存储规则
数据类型的介绍
在前面的章节中我们基本认识到了各种数据类型,这里我们就稍微回忆以下吧
类型的意义:
- 决定了访问内存空间的大小
- 决定了看待内存空间的视角(例如:整型和字符数据类型)
类型的基本归类
整型家族:
char
unsigned char
signed char
short
unsigned short [int]
signed short [int]
int
unsigned int
signed int
long
unsigned long [int]
signed long [int]
浮点型家族:
float
double
构造类型:
> 数组类型
> 结构体类型 struct
> 枚举类型 enum
> 联合类型 union
指针类型:
int *pi; char *pc; float *pf; void *pv;(泛型指针)
空类型:
void 表示空类型 (无类型)
通常用于 函数的返回类型、函数的参数、指针类型
//作为函数的返回类型 void f1()//不接受任何返回值 { ; } //作为函数的参数 int f2(void)//参数为void时,传入参数会报错 { ; } //作为指针类型 void* f3(void* pv)//参数为 void* 时,可接收任意类型的参数 { ; }
整型在内存中的存储
计算机中的整数有三种2进制表示方法,即源码、反码、补码。
三种表示方法均有符号位和数值位
符号位: " 0 " 表示 正," 1 "表示 负
数值位:
正数:
原码、反码、补码相同
负数:
原码:直接将数值按二进制翻译
反码:原码符号位不变,其它位按位取反
补码:反码+1
我们可以在内存中的存储看到:
这里大家可能有个疑问,为什么j
和i
在内存中会是这样?为什么i
和 j
内部二进制会倒过来存储呢??编译器坏了
相关推荐
-
c语言 数据存储与原码 反码 补码详细解析
目录 前言 1.数据的类型介绍 1.1整形家族 2.整形在数据内存中的存储 2.1 原码 反码和补码(三种整型数的表示方法) 2.2大小端字节序序的介绍 2.3 练习 3.浮点型在内存中的存储 3.1 先举一个例子 3.2 浮点数储存的规则 前言 学习本章你会了解: 1.数据类型详细介绍 2.整形在内存中的存储:以及了解原码.补码.反码 3.大小端字节序的介绍和判断 4.浮点型在内存中的存储解析 1.数据的类型介绍 在学习数据储存之前,让我们先认识一下数据类型.以下这些数据类型是我们初学c语言时
-
C语言深入探究sizeof与整型数据存储及数据类型取值范围
目录 1.关键字sizeof 2.整型数据存储深入 3.数据类型取值范围深入 1.关键字sizeof sizeof 与 strlen 是我们日常打代码时经常使用到的两个“工具”.前者是求变量或者类型的大小(单位为字节),后者是求某一字符串的长度.我们很容易产生这样一个误解,即把 sizeof 和 strlen 归为函数一类.事实上 sizeof 并不是一个函数,它是一个操作符.关键字.我们通过一段代码证明它不是函数: #include <stdio.h> int main() { int n
-
C语言数据存储详解
目录 一.数据类型 二.整型在内存中的存储 1.原码.反码.补码 大小端介绍 三.浮点型在内存中的存储 1.举一个浮点数存储的例子: 2.浮点数存储规则: 总结 一.数据类型 char:字符数字类型.有无符号取决于编译器,大部分编译器有符号(signed char) 而short.int.long都是有符号的. unsigned char c1=255;内存中存放二进制的补码:11111111 都是有效位,没有符号位 char c2=255;结果为-1 同理可推出short.int等 二.整型在
-
C语言 数据存储方式知识点详解
C语言 数据存储方式 一.源码 一个数的原码(原始的二进制码)有如下特点: 最高位做为符号位,0表示正,为1表示负 其它数值部分就是数值本身绝对值的二进制数 负数的原码是在其绝对值的基础上,最高位变为1 下面数值以1字节的大小描述: 十进制数 原码 +15 0000 1111 -15 1000 1111 +0 0000 0000 -0 1000 0000 注:原码表示法简单易懂,与带符号数本身转换方便,只要符号还原即可,但当两个正数相减或不同符号数相加时,必须比较两个数哪个绝对值大,才能决定谁减
-
C语言数据存储归类介绍
目录 数据类型的介绍 类型的基本归类 整型在内存中的存储 什么是大小端 浮点数在内存中的存储 浮点数在内存中的存储规则 数据类型的介绍 在前面的章节中我们基本认识到了各种数据类型,这里我们就稍微回忆以下吧 类型的意义: 决定了访问内存空间的大小 决定了看待内存空间的视角(例如:整型和字符数据类型) 类型的基本归类 整型家族: char unsigned char signed charshort unsigned short [int] signed short [int
-
C语言数据(整数、浮点数)在内存中的存储
本篇主要讨论:整数.浮点数在内存中是怎么保存的! 数据类型详细介绍 在前面C语言基础概览中,已经提到过了基本的C语言内置类型,但C语言的数据类型有无数种~ 但是可以把这些类型分为几个大类: 类型的归类: 存整数的 char,short,int,long,long long及所配套的unsigned,int*,int[]- 2.存浮点数的 float,double,float[]- 结构体(结构体在内存中的存储后面在进行讨论~) 整数在内存种的存储: 1.字节序 2.补码 内存窗口 调试模式下的内
-
C语言数据的存储专项分析
目录 数据的类型介绍 类型的基本归类 整形在内存中的存储 源码.反码.补码 关于大小端的概念 浮点型在内存中的存储 数据的类型介绍 类型的基本归类 在写数据类型的介绍之前,我们首先来简单介绍下 release版本与debug版本之间的在内存上的区别: 我们先将下面的一段代码在VS中运行一下,得到的结果是截然不同的 int i = 0; int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; for (i = 0; i <= 12; i++) { arr[i] = 0; pri
-
C语言深入分析整形数据存储
目录 数据类型 类型的分类 整形在内存中的存储 原码.反码.补码 大小端介绍 char类型数据的取值范围 练习 练习1 练习 2 练习 3 练习 4 练习 5 练习 6 练习 7 数据类型 C语言中存在着数据类型,我们或多或少都见到过. char //字符数据类型 - 1个字节 short //短整型 - 2个字节 int //整形 - 4个字节 long //长整型 - 4/8个字节 long long //更长的整形 - 8个字节 float //单精度浮点数 - 4个字节 double /
-
C语言深入分析浮点型数据存储
目录 1. 前言 2. 浮点型在内存中的存储 3. 例题引入 4. 浮点数存储规则 4.1 浮点数的存 4.2 浮点数的取 5. 例题解答 6. 浮点型的精度探究(※) 6.1 浮点数的精度丢失 6.2 浮点数之间如何比较 6.3 浮点数和0比较 7. 结语 1. 前言 上篇文章,我们对整形是如何存储的做出了讲解,而在本篇文章中,我将讲解浮点型是如何存储的,以及对于浮点型数据之间的比较做出一个探究,相信在阅读本篇文章后,你会对数据在内存中的存储有一个新的认识.话不多说,我们进入正题. 2. 浮点
-
C语言数据的存储超详细讲解上篇
目录 前言 1.数据类型介绍 类型的基本归类 2.整形在内存中的存储 2.1 原码.反码.补码 2.2 大小端介绍 2.2.1 什么是大小端 2.2.2 大端和小端意义 2.2.3 写程序判断字节序 总结 前言 本文开始学习C语言进阶的内容了,进阶内容,是在基础阶段的内容上进行拓展,有的知识点,在基础阶段也已经学过.在进阶内容中,将从更深层次的角度去理解学习,本文主要内容包括: 数据类型详细介绍 整形在内存中的存储:原码.反码.补码 大小端字节序介绍及判断 浮点型在内存中的存储解析 1.数据类型
-
C语言数据的存储和取出详细讲解
数据的存储和取出 整形的储存 我们知道一个整形的存储是以补码的形式储存取出是原码的形式. 比如:int a = 5;的二进制是101 那它的原码应该是:00000000 00000000 00000000 00000101 正数的原反补相同那它存进去和取出来都是:00000000 00000000 00000000 00000101 那float a = 5.5;也是四个字节它和整形存储的方式一样吗? 浮点型的储存方式 例子: #define _CRT_SECURE_NO_WARNINGS 1
随机推荐
- JSP的response对象的实例详解
- SQL 存储过程基础语法之一
- AngularJS基础 ng-list 指令详解及示例代码
- Android中Json数据读取与创建的方法
- java对象序列化与反序列化的默认格式和json格式使用示例
- 批量升级局域网内的金山毒霸
- JS 正则表达式用法介绍
- Javascript - HTML的request类
- 通过JavaScript使Div居中并随网页大小改变而改变
- 怎样删除android的gallery中的图片实例说明
- 在Linux命令行终端中使用python的简单方法(推荐)
- python进阶教程之动态类型详解
- JavaScript动态生成二维码图片
- ajax接收Date类型的数据时会把数据转换为时间戳
- 算法系列15天速成 第二天 七大经典排序【中】
- PHP程序员玩转Linux系列 搭建FTP代码开发环境
- linux下查看已经安装的jdk 并卸载jdk的方法(推荐)
- jQuery 插件 将this下的div轮番显示
- java 键盘输入的多种实现方法
- 基于JavaMail的Java实现简单邮件发送功能