数据的存储

数据存储

1.如何存储
缓存:CPU GPU – 容量小,存储时间短(计算时存储)
内存:内存条 – 程序运行时存储
外存:硬盘 U盘 光盘 – 容量大,存储时间长

2.二进制
每一个0或者1表示的是电路的通断
每一个0或者1叫做二进制的位[bit比特位]

在分配内存的时候不能一个位一个位的分配,至少每次分配8个位(一个字节byte),字节是计算机最小的有意义的存储单位.

十进制的正整数–>二进制: 不断除2,取余数,再将余数倒过来

byte a=59 ---> 00111011

二进制–>十进制 :从低位开始依次用当前位的数字乘以2的n次方,n从0开始的连续的整数,将乘积相加,得到十进制的数字

00111011 ---> 59

3.区分正负数
Java中采用最高位作为符号位 0表示正 1表示负

00000000 01111111
0       ~     127

10000000 11111111
-128     ~     -1

快速进行二进制和十进制转换的方法

1    1   1   1   1  1  1  1
128  64  32  16  8  4  2  1

59      =  32+16+8+2+1
00111011

十进制的正整数转成二进制,不停的除2,取余数,再将余数倒过来,得到的二进制叫做这个整数的二进制原码.

计算机中采用的是二进制的补码来表示整数的
正数的补码和原码相同
负数的补码 = 对应正数的原码的反码+1

//-59的二进制
先计算-59对应的正数59的 原码: 00111011
			反码: 11000100
			 +1 : 11000101
	-59的二进制是:11000101

二进制的计算要和十进制的计算完全一致

-59       +     59        =       0
11000101  +   00111011     =      0

 11000101
+00111011
----------
100000000

4.浮点数的存储方式

  20.5
1.先将整数部分转成二进制
	除以2取余数,直到商为0
	20 --> 10100
2.将小数部分转成二进制
	乘以2,取整数部分,直至积为0
	0.5*2=1.0             1
	0.0*2=0                 0
3.将整数部分的二进制和小数部分的二进制拼到一起
	20.5=10100.1
4.将二进制采用科学计数法表示
	20.5 = 10100.1 = 1.01001E4
5.将指数部分转成二进制
	20.5 = 10100.1 = 1.01001E4 =1.01001E100 
float 32位 第1位是符号位,接着8位是指数位  最后23位是尾数位
1.01001E100  是一个正数,符号位0
		指数100,先将指数+0111111得到10000011
		尾数只存储小数部分01001,后面加0补齐23float 20.5 = 0 10000011 01001 000000000000000000

double 64位 第一位符号位,接下来11位是指数位,尾数位52
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值