C语言 数据存储方式

C语言 数据存储方式

一、源码

一个数的原码(原始的二进制码)有如下特点:

  • 最高位做为符号位,0表示正,为1表示负
  • 其它数值部分就是数值本身绝对值的二进制数
  • 负数的原码是在其绝对值的基础上,最高位变为1

下面数值以1字节的大小描述:


十进制数


原码


+15


0000 1111


-15


1000 1111


+0


0000 0000


-0


1000 0000

注:原码表示法简单易懂,与带符号数本身转换方便,只要符号还原即可,但当两个正数相减或不同符号数相加时,必须比较两个数哪个绝对值大,才能决定谁减谁,才能确定结果是正还是负,所以原码不便于加减运算。

二、反码

对于正数,反码与原码相同
对于负数,符号位不变,其它部分取反(1变0,0变1)


十进制数


反码


+15


0000 1111


-15


1111 0000


+0


0000 0000


-0


1111 1111

注:反码运算也不方便,通常用来作为求补码的中间过渡。

三、补码

1、补码说明

计算机系统中,数值一律用补码来存储。

补码特点:

  • 对于正数,原码、反码、补码相同
  • 对于负数,其补码为它的反码加1
  • 补码符号位不动,其他位求反,最后整个数加1,得到原码

十进制数


补码


+15


0000 1111


-15


1111 0001


+0


0000 0000


-0


0000 0000

2、补码的意义

在计算机系统中,数值一律用补码来存储,主要原因是:

  • 统一了零的编码
  • 将符号位和其它位统一处理
  • 将减法运算转变为加法运算
  • 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃

示例:用8位二进制数分别表示+0和-0


十进制数


原码


+0


0000 0000


-0


1000 0000


十进制数


反码


+0


0000 0000


-0


1111 1111

说明:不管以原码方式存储,还是以反码方式存储,0也有两种表示形式。但是如果以补码方式存储,补码统一了零的编码:


十进制数


补码


+0


0000 0000


-0


10000 0000由于只用8位描述,最高位1丢弃,变为0000 0000

四、案例演示

模拟计算机运算



1)  76 - 32

计算机算法:76+(-32)



2) 76

源码:0100 1100

反码:0100 1100

补码:0100 1100



3) -32

源码:1010 0000

反码:1101 1111

补码:1110 0000



4) 相加

1110 0000

0100 1100



5) 验算

结果:1 0010 1100

舍弃补码:0010 1100

结果补码:0010 1100

反码:0010 1100

转换源码:0010 1100

注:由于舍弃补码0为正数,则转换源码与补码相同。



6) 结果:44



注意事项:

1、符号位 正数:0

2、符号位 负数:1

3、补码计算结果,符号位超出大小限制则省略符号位

4、补码结果:开头数字是1时、根据负数规则转为源码、开头0是为正数转换

5、正数:源码、反码、补码、相同

6、负数源码转反码:符号不变,其他位0变为1、1变为0

7、负数反码转补码:反码的结果之上加1

8、加完或减完结果 不能大于或小于负的127



C语言 数据存储方式

原文地址:https://www.cnblogs.com/xiangsikai/p/12371424.html

时间: 2024-07-29 19:53:16

C语言 数据存储方式的相关文章

iOS狂暴之路---iOS中应用的数据存储方式解析

一.前言 前面一篇文章中已经介绍了iOS应用中的视图控制器知识点,而本文不会按照常理来介绍View的知识点,而是先介绍iOS中的数据存储知识点,因为关于View的知识点太多了,后面会连续详细介绍一下.这篇先来看一下iOS中的数据存储功能分析.每一个iOS应用和Android应用一样,都有其对应的沙盒存储自己的数据,但是iOS和Android有一个区别就在于没有SD卡的概念了,也就说在iOS中应用的数据只能保存到自己的沙盒中.这也可以看出来iOS为了应用的安全考虑. 在开发Android的时候都知

Android的数据存储方式(转)

数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面将为大家一一详细介绍. 第一种: 使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗

Android数据存储方式

在Android开发中,我们有时需要存储一些数据 便于我们清楚知道存储的信息,很直观的看到 可以用来分析.Java中 中也有一些存储方式,在这里我就不一一介绍了,感兴趣的盆友http://blog.csdn.net/aaa1117a8w5s6d/article/details/8251456,今天的重点是来研究Android中的数据存储,Android中提供了几种方式来存储,下面来一一为大家介绍. 在Android系统中 提供了四种存储方式 分别是SQLite .File.SharedPrefe

Node.js 数据存储方式的选择

如何为你的 Node.js 应用挑选数据库 Node.js 应用一般有三种方式保存数据. 不使用任何数据库管理系统(DBMS),把数据保存在内存里或直接使用文件系统. 使用关系数据库.例如 MySQL, PostgreSQL. 使用非关系数据库.例如 Redis,MongoDB,CouchDB, PouchDB 无服务器数据存储 (Serverless Data Storage) 从管理上来说,第一种方式是最方便易用的.不需要安装任何数据库,直接使用内存和文件就行了. 无需数据库的内存存储就是使

IOS开发数据存储篇—IOS中的几种数据存储方式

IOS开发数据存储篇—IOS中的几种数据存储方式 发表于2016/4/5 21:02:09  421人阅读 分类: 数据存储 在项目开发当中,我们经常会对一些数据进行本地缓存处理.离线缓存的数据一般都保存在APP所在的沙盒之中.一般有以下几种: 1.PList(XML属性列表) 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦 //写入文件 NSString *doc = [NSSearchPathForDirectoriesInDomains(

Android的4中数据存储方式

Android的4中数据存储方式:1.SharedPreference2.SQLite3.ContentProvider4.File 1.SharedPreference 1)轻量级数据存储方式A 2)本质是基于XML文件存储key-value键值对数据 3)用于保存应用程序的 参数/属性的配置信息 SharedPreference对象本身只能获取数据而不支持存储和修改,修改是通过Editor来实现 实现SharedPreference存储的步骤: (1)获得SharedPreference对象

C之数据存储方式(三十五)

今天我们来探讨下 C 语言中的数据存储方式.在程序中,数据的存储方式无外乎分为栈.堆以及静态存储区.我们分别来看看这三种方式,看看有何区别. A.程序中的栈 栈是现代计算机程序里最为重要的概念之一,栈是用于维护函数调用上下文,同样函数中的参数和局部变量存储在栈上.栈保存了一个函数调用所需的维护信息,如下图所示 那么每次函数调用都对应着一个栈上的活动记录:a> 调用函数的活动记录位于栈的中部:b> 被调函数的活动记录位于栈的顶部. 从 main() 开始运行,我们看到有两个指针 ebp 和 es

安卓中的数据存储方式以及ContentProvider的简单介绍

1.介绍android的数据存储方式 File存储 sharedPrefrence存储方式 conmtentprovider sqlitedatabase 网络存储 2.请介绍下ContentProvider是如何实现数据共享的 安卓中如果想将自己应用程序的数据暴露给其他的应用程序的时候就需要创建内容提供者.第三方可以通过contentResolver来访问该provider 3.为什么要使用ContentProvider?它和sql的实现上有什么差别? ContentProvider屏蔽了数据

android五种数据存储方式

在Android中提供了如下五种数据存储方式: SharedPreferences 文件存储 SQLite数据库方式 内容提供器(ContentProvider) 网络存储 下面具体介绍一下这五种数据存储方式的用法. 1. SharedPreferences SharedPreferences是android平台上的一个轻量级存储类,主要保存一些常用的配置信息.可以保存long.int.String类型数据. SharedPreferences以键值对方式读取和存入,最终会以XML方式保存数据,