鱼C论坛

 找回密码
 立即注册
查看: 2352|回复: 0

[技术交流] 数据的存储以及二进制思想

[复制链接]
发表于 2015-1-10 19:57:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编程过程中,我们大部分时间是在与CPU和内存打交道,很少直接操作硬盘,下面我们来看看数据是怎样保存在内存中的。

内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,有两种状态,通电和断电,通电是高电平(5V),用1来表示,断电是低电平(0V),用0来表示。所以,一个元器件有2种状态。

如果我们通过电路来控制这些元器件的通断电,那么就可以得到很多0、1状态的组合。例如,8个元器件有 28=256 种不同的组合,16个元器件有 216=65536 种不同的状态。虽然一个元器件只能表示2种状态,但是多个组合起来就可以表示很多状态了,所以,我们通常将8个、16个、24或32个元器件组合起来表示一个字符,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。现在,你知道1GB的内存有多少个元器件了吧。

单位换算:
  • 1Byte = 8 Bit
  • 1KB = 1024Byte
  • 1MB = 1024KB
  • 1GB = 1024MB
  • 1TB = 1024GB

你看,在内存中没有abc这样的字符,只有0和1两个数字,计算机也只认识0和1。所以,计算机使用二进制,而不是我们熟悉的十进制,写入内存中的数据,都会被转换成0和1的组合。二进制思想十进制有0~9共10个数字,基数为10,逢十进一,借一当十;二进制只有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八进制和十六进制除了二进制,编程中也经常使用八进制和十六进制。

八进制有0~7共8个数字,基数为8,逢八进一,借一当八;十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有0~F共16个数字,基数为16,逢16进1,借1当16。例如:
  • 八进制 3072 = 3×83 + 0×82 + 7×81 + 2×80 = 1536 + 0 + 56 + 2 = 1594
  • 十六进制 E3F9 = 14×163 + 3×162 + 15×161 + 9×160 = 57344 + 768 + 240 + 9 = 58361

为了加深印象,最后给大家看个笑话。

程序员A:“哥们儿,最近手头紧,借点钱?”

程序员B:“成啊,要多少?”

程序员A:“一千行不?”

程序员B:“咱俩谁跟谁!给你凑个整,1024,拿去吧。”

你看懂这个笑话了吗?请选出正确答案。

A) 因为他同情程序员A,多给他24块
B) 这个程序员不会数数,可能是太穷饿晕了
C) 这个程序员故意的,因为他独裁的老婆规定1024是整数
D) 就像100是10的整数次方一样,1024是2的整数次方,对于程序员就是整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 15:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表