编程中数据是内存中的01
2015-01-13 14:54
155 查看
我们在编程过程中,大部分时间是在与CPU和内存打交道,数据是保存在内存中的,CPU会直接读取内存中的数据进行处理,并将结果保存到内存。如果需要保存到硬盘,才会将内存中的数据复制到硬盘。
内存条是一个非常精密的部件,包含了上亿个电子元器件。这些元器件,有两种状态,通电和断电,通电是高电平,用1来表示,断电是低电平,用0来表示。
如果我们通过电路来控制这些元器件的通断电,那么就可以得到很多0、1状态的组合。例如,8个元器件有 2^8=256 种不同的组合,16个元器件有 2^16=65536 种不同的状态。虽然一个元器件只能表示2种状态,但是多个组合起来就可以表示很多状态了,所以,我们通常将8个、16个元器件组合起来表示一个字符,8个元器件可以表示256个字符,16个可以表示65536个字符。
我们将1个元器件称为1Bit(比特),8个元器件称为1Byte(字节),那么16个元器件就是2Byte,32个就是4Byte,以此类推,8×1024个元器件就是1024Byte,简写为1KB,8×1024×1024个元器件就是1024KB,简写为1MB,8×1024×1024×1024个元器件就是1024MB,简写为1GB。
单位换算:
1Byte = 8 Bit
1KB = 1024Byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
在内存中是没有abcdef这样的字符,只有0和1两个数字,计算机只认识0和1。所以,计算机使用二进制,而不是我们熟悉的十进制,写入内存中的数据,都会被转换成0和1的组合。
二进制只有0和1两个数字,基数为2,逢二进一,借一当二。例如:
十进制 4321 = 4×103 + 3×102 + 2×101 + 1×100
二进制 1101 = 1×23 + 1×22 + 0×21 + 1×20 = 8 + 4 + 0 + 1 = 13
二进制 110.11 = 1×22 + 1×21 + 0×20 + 1×2-1 + 1×2-2 = 4 + 2 + 0 + 0.5 + 0.25 = 6.75
二进制数据的算术运算的基本规律和十进制数的运算十分相似。最常用的是加法运算和乘法运算。
二进制加法:
0+0=0
0+1=1
1+0=1
1+1=10
二进制乘法:
0×0=0
1×0=0
0×1=0
1×1=1
二进制减法:
0-0=0
1-0=1
1-1=0
10-1=1
二进制除法:
0÷1=0
1÷1=1
内存条是一个非常精密的部件,包含了上亿个电子元器件。这些元器件,有两种状态,通电和断电,通电是高电平,用1来表示,断电是低电平,用0来表示。
如果我们通过电路来控制这些元器件的通断电,那么就可以得到很多0、1状态的组合。例如,8个元器件有 2^8=256 种不同的组合,16个元器件有 2^16=65536 种不同的状态。虽然一个元器件只能表示2种状态,但是多个组合起来就可以表示很多状态了,所以,我们通常将8个、16个元器件组合起来表示一个字符,8个元器件可以表示256个字符,16个可以表示65536个字符。
我们将1个元器件称为1Bit(比特),8个元器件称为1Byte(字节),那么16个元器件就是2Byte,32个就是4Byte,以此类推,8×1024个元器件就是1024Byte,简写为1KB,8×1024×1024个元器件就是1024KB,简写为1MB,8×1024×1024×1024个元器件就是1024MB,简写为1GB。
单位换算:
1Byte = 8 Bit
1KB = 1024Byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
在内存中是没有abcdef这样的字符,只有0和1两个数字,计算机只认识0和1。所以,计算机使用二进制,而不是我们熟悉的十进制,写入内存中的数据,都会被转换成0和1的组合。
二进制只有0和1两个数字,基数为2,逢二进一,借一当二。例如:
十进制 4321 = 4×103 + 3×102 + 2×101 + 1×100
二进制 1101 = 1×23 + 1×22 + 0×21 + 1×20 = 8 + 4 + 0 + 1 = 13
二进制 110.11 = 1×22 + 1×21 + 0×20 + 1×2-1 + 1×2-2 = 4 + 2 + 0 + 0.5 + 0.25 = 6.75
二进制数据的算术运算的基本规律和十进制数的运算十分相似。最常用的是加法运算和乘法运算。
二进制加法:
0+0=0
0+1=1
1+0=1
1+1=10
二进制乘法:
0×0=0
1×0=0
0×1=0
1×1=1
二进制减法:
0-0=0
1-0=1
1-1=0
10-1=1
二进制除法:
0÷1=0
1÷1=1
相关文章推荐
- windows编程之内存数据修改
- 编程修改内存中的过时数据
- 编程实现将AREA1为首地址的10个字节单元数据搬移到以AREA2为首地址的内存中去,并按从小到大排序
- linux高级编程01 内存管理
- 从程序员到数据科学家:SAS 编程基础 (01)
- Java基础(极客)——01、Java编程基础知识入门:变量与数据类型
- 编程修改内存中的过时数据
- 游戏外挂技术:编程实现内存检索(检索内存中指定数据)
- 《C++ Primer》读书笔记-第二章 01 数据的内存表示
- 01-大数据内存计算spark系列贴-spark生态系统简介
- [叩响C#之门]第1章 初识编程 1.6 数据和内存
- 游戏外挂技术:编程实现内存检索(检索内存中指定数据)
- Linux下网络编程(3)——进程间通信(IPC),共享内存,传递结构体数据
- SpringMVC_01 SpringMVC五大组件、SpringMVC编程步骤(不使用注解进行配置)、SpringMVC编程步骤(利用注解进行配置)、参数获取、响应数据
- SAS技巧-将输出数据转向到内存的一种方法
- [转贴]屏幕/内存同步原则在Symbian编程中的应用
- windows下常用数据类型内存对照表
- Item01: 数据提取(Data Abstraction)
- 通过内存映射实现进程间数据交换
- Item01: 数据提取(Data Abstraction)