C中的数据存储形式
来源:互联网 发布:matlab网络仿真 编辑:程序博客网 时间:2024/05/19 08:45
首先介绍一下原码、反码和补码的概念:
原码:符号位用0表示正号,用1表示负号,数值一般用二进制形式表示。
反码:正数的反码与原码相同,负数的反码是对原码(除符号位)按位取反。
补码:正数的补码与原码相同,负数的补码是对它的原码(除符号位外)各位取反,并在末位加1而得到的(或者说是原码的绝对值按位取反后在末位加1)。
注意:0用原码有两种表示方法:00…0(+0)或100…0(-0),用反码有两种表示方法:00…0或111…1,用补码只有一种表示方法:000…0。
下面介绍一个各种数据类型的存储形式:
1. 整形数据
采用补码形式存放在内存中。对于int型数据,如果不指定unsigned或指定signed,则存储单元中最高位代表符号(0位正,1位负);如果指定unsigned,为无符号型,存储单元全部二进位用作存放数据本身,而不包括符号。
下面是常见的数的存储形式:
有符号整形变量a = 32767:
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
符号位
有符号整形变量a = -32768:
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
符号位
(注意:int型范围(特指在Turbo C中)是-32768~32767,因此32767+1之后并不是32768,却变成了-32768,可以看出10…0的确是-32768的补码)
无符号整型变量b = 65535:
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
代表数据的第1位
(注意:无符号型相对于符号型变量来说,其正数范围扩大一倍)
2. 实型数据
实型变量有2中表示方法,小数形式和指数形式(123e3或123E3,注意e/E之前必须有数字,后面指数必须为整数)。在内存中,实数形式是按照指数形式存储的,系统把一个实数数据分成小数部分和指数部分分别存放。
3. 字符常量
字符常量是把它对应的ASCII码(整形变量)值放在内存中(最终是二进制)。
- C中的数据存储形式
- 2000中的数据存储形式(二)
- float数据在内存中的存储形式
- C数据的类型及存储形式
- C学习笔记2-int类型数据在内存中的存储形式
- 字符数据在内存中的存储形式及其使用方法(C实现)
- 数据存储BigDecimal形式
- D3数据存储形式
- 字符数据在内存中的存储形式及使用方法
- 4、数据在计算机中的存储形式和运算
- 数据在计算机中的存储形式和运算
- 数据在计算机中的存储形式和运算
- float型数据在内存中的存储形式
- 数据在计算机中的存储形式和运算
- float型数据在内存中的存储形式
- float型数据在内存中的存储形式
- float型数据在内存中的存储形式
- 数据在计算机中的存储形式和运算
- BCB 串口调试经验(转载)
- 看看积分
- 关于Activity Launch mode 的理解
- struts2.0+spring
- ABAP--如何通过Oracle游标直接操作Oracle的系统表
- C中的数据存储形式
- 堆排序算法的实现
- JasperReports Subreport 实例
- SQL SERVER索引优化系列之二:索引性能考虑 (转)
- EVA control(eva3000 eva5000)指示燈
- Drupal Tips
- radchart重要属性一览
- symbian 3rd获得当前的手机铃声
- ListView 适配器(Adapter)