| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言:整型在内存中的存储及表示形式(附习题) -> 正文阅读 |
|
[C++知识库]C语言:整型在内存中的存储及表示形式(附习题) |
我们都知道:一个变量的创建是要在内存中开辟空间的,而空间的大小是根据不同的类型而决定的。 那么数据在开辟空间中是如何存储的呢? 首先我们先了解以下概念: 一、整数的表示形式(原码、反码、补码)计算机中的整数有三种表示方法,即原码、反码和补码。 三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”。 1、正整数的原码、反码、补码相同。 2、而负整数的三种表示方法不同:
【注意】 对于整形来说:数据存放内存中其实存放的是补码。 我们首先看到一个数比如int a=1 ,那么我们此时写出的二进制是原码,对数以二进制计算时,把原码转换为补码再用补码来计算,而我们打印出来的却是原码。 二、整数的存储(大端存储以及小端存储)当整数大于1个字节,那么在内存中存储有一个顺序的问题。 那么整数在内存中如何存储呢? 这里我们看一个例子:
进行调试,发现在内存中: 发现a的地址是这样存储的 b的地址是这样存储的 我们发现,是以1个字节为单位存储。 这里我们就有疑问了,为什么要这么存储呢? 其实我们在内存中的存储是分大端存储和小端存储的 1、大端存储 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 2、小端存储 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。 那么我们怎么判断一个数是以小端存储还是大端存储呢?
或者
三、练习接下来我们通过练习,来深入理解。 1、
2、
3、
我们按照补码的形式进行运算,最后格式化成为有符号整数 4、
这道题的结果是:死循环 i从9开始一直减,直到i=-1。 我们知道i在内存中以补码11111111111111111111111111111111存储,如果以无符号数打印,所有位都为有效位,那么结果将很大,所以会一直循环下去。 【注意】无符号数永远不可能小于0. 5、
6、
这里的i是无符号位的char ,那么最大的是11111111,为255,所以无符号的char的范围是0-255,因为范围最大为255,那么恒小于255,所以是死循环。 以上就是整型在内存中的存储及表示形式啦! |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/22 11:07:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |