数据在内存中的保存方式 【掌握】
1、存储的空间单位
字节:
计算机操作的最小单元 bit
1 byte = 8 bit
1 KB = 1024 byte
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 G
1 PB = 1024 TB
数据如何保存
2、进制转换
进制 | 基数范围 | 规则 |
---|---|---|
二进制 | 0~1 | 逢二进一 |
八进制 | 0~7 | 逢八进一 |
十进制 | 0~9 | 逢十进一 |
十六进制 | 0-9A~F | 逢G进一 |
计算机支持的最大进制是多少进制?
26个英文字母+10个数字=36进制
①十进制转换为二进制
156(10) --> 1001 1100
156 0
78 0
39 1
19 1
9 1
4 1
2 0
1 0
0 1
规则:辗转相除,余数倒序
1011 1101(2) --> 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 + 1*2^4 + 1*2^5 +0*2^6 + 1*2^7
= 1 + 0 +4 + 8 + 16 +32 + 0 + 128
= 189
②<1>八进制数表示方式:
0771 0724 -->要用0开头
0886 -->不对
<2>八进制和二进制之间的关系:
0(000)~7(111)
八进制的一位对应二进制的三位:
0771 -->111 111 001
0654 -->110 101 100
③<1>十六进制数表示方式:
要求用0x或者0X开头
0xABCDE 0X77bbaa
<2>十六进制和二进制之间的关系:
0(0000)~~F(1111)
十六进制的一位对应二进制的四位:
0xABCDEF->1010 1011 1100 1101 1110 1111
0x77bbaa --> 0111 0111 1011 1011 1010 1010
在计算机中所有的数据保存采用的方式都是二进制
3、原码、反码、补码
①正整数
118 --> 0111 0110 (B)
正整数保存数据的方式就是用该数对应的二进制数
正整数 原码 反码 补码 是一样的 三码合一
②负整数
原码 反码 补码
-118
原码:该负数对应正整数的二进制编码
118 --> 0111 0110
最高位表示符号位用1表示
-118 --> 1111 0110(B)
反码:原码按位取反,符号位不变
1111 0110 --> 1000 1001
补码:反码+1
1000 1001 + 1 --> 1000 1010
1000 1010是负数 -118 在内存中的保存方式
1 0 0 0 1 0 1 0 (-118)
+ 0 1 1 1 0 1 1 0 (118)
------------------------
1 0 0 0 0 0 0 0 0
负数在内存中保存的方式是采用-补码的方式:
采用这方式是为了减少计算机的逻辑运算复杂度,可以直接使用补码来参与运算
4、常量
pi 3.141592654
G 9.8
c 3.0*10^8
黄金分割 0.618
A B C D E 字母
明天天气 --> 字符串
常量不要只是认为是 数值 或者 数字、 字符、语句其实也是一个常量
常量:
在程序运行过程中,不会发生改变的量,就是常量
整数:10 20 30 -10
小数:3.141592654 0.618
真假:对或错、真或假、T or F、true or false 、boolean布尔类型
字符:‘a’、‘b’、‘c’、‘D’、‘我’
【特征】
[单引号]包含的[单个元素],称之为字符常量
字符串:
“This is Java”
【特征】
[双引号]包含的所有内容都是字符串常量
5、编码
BIG5 中文繁体字编码
GB2312 中国简体汉字和一少部分的少数民族文字
GBK 新国标 包含了所有的中国汉字和全部的少数民族文字
UTF-8 万国码
Java HTML MySQL Oracle
ASCII码 最简单的编码
网友评论