day01-数据类型及进制转换
按自己习惯简单整理的笔记,由于格式版本是txt形式,部分标点符号或者缩进板块不是那么严谨,介意者请自行忽略,谢谢!
数据存储原理
思考
1. 软件编程的实质:
数据的 增 删 改 查
2. 数据的存放位置:
内存,硬盘,"服务器"
3. 数据有哪些形式呢
1. 数字 12, 1.2
2. 字符 “张三”
3. 图片形式
4. 视频
5. 音频
3.2 数据是怎么存储到硬盘上的?
抽象的原理:计算机的硬盘是一个电路系统,
硬盘相当于把硬盘分成了很多的格子
每个格子有两种状态,一种状态用1表示,
另外一种状态用0表示(单位是bit)
计算机把 8 个“格子”,当成一个整体,
相当于把8个格子放在一个房间里,就可以表示2^8种状态
这个房间就可以看成一个字节(byte是计算机的一个存储单位)
硬盘相当于一个高楼大厦,有很多个房间,
每个房间都有一个房间号(内存地址)就可以找到对应数据
bit-----0,1
1Byte=8bit 数值范围到2^8
1kb=1024byte
1M =1024 KB
1G =1024 MB
1T =1024 GB
500GB,1T
厂商:1T=1000GB 1GB=1000MB
计算机:1024
宽带10Mb ----bit/s 1.25MB 中国
10Mb/s----byte/s 10MB 国外
00001 00010
二进制形式:特点 -逢二进一
以0,1形式表示数据
8---00001000
1+1=0000 0010
101+1=110
0000 0101
+ 0000 0001
------------------
110
八进制(2跟16进制的转换作用,用的少) 特点:逢八进一
以0,1,2,3,4,5,6,7来表示数据
12 + 34 =46
12 + 37 =51
12
+ 37
-----
51
十进制 特点:逢十进一
以0,1,2,3,4,5,6,7,8,9来表示数据
1+1=2
十六进制 (方便人看机器的) 特点:逢十六进一
以0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
应用:网卡的地址,颜色,汉字
a---10
b---11
c---12
d---13
e---14
f---15
88+88=110
88+85=10d
88
+88
------
110
十进制转换成二进制
倒序法 该数除以2取余,将余数倒序排列 就是二进制
12 1100
1--2--4--8 2^n
二进制转换成十进制
1100---12 1*2^3
该位数的数乘以2的N次方,(n代表当前的位数,n从0开始) 的和
0*2^0 + 0*2^1 + 1*2^2 +1*2^3=12
110011
八进制转换为二进制----八进制的一位就是二进制的三位
456--------100 101 110
十六进制转换为二进制----十六进制的一位数就是二进制的四位数
e8=1110 1000
二进制转换成十六进制-----二进制的四位数就是十六进制的一位数
1111----15
1100 1001=c9
二进制转换为八进制----二进制的三位就是八进制的一位数
001 000 000
010 100 110= 24
计算机的存储过程:当一个数据存储的时候,
会先在存储区域开辟一个内存空间,再存储值
存储的最小单位是一个字节(8位)
在软件开发中,一个整数一般用4个字节来存储一个整数
1----> 00000001 ------0-255
1+1=
00000000 00000000 00000000 00000001
+ 00000000 00000000 00000000 00000001
--------------
00000000 00000000 00000000 00000010
1+(-2)= -1
二进制的整数将二进制数的第一位作为 符号位,
1表示该数是负数,默认是0
1+(-2)= -1
00000000 00000000 00000000 00000001
10000000 00000000 00000000 00000010
----------
10000000 00000000 00000000 00000011-----> -3
原码--->一个二进制数,包含了符号位和数值位的数,
就是该数的原码
1--- 00000000 00000000 00000000 00000001
-2---10000000 00000000 00000000 00000010
反码--->正数的反码就是其原码(自身)
负数的反码是其符号位不变,其他位置取反
1+1=2
1+(-2)= -1
00000000 00000000 00000000 00000001
+ 11111111 11111111 11111111 11111101
------------------------------------------
11111111 11111111 11111111 11111110--->取反--->
10000000 00000000 00000000 00000001--->-1
1+(-1)=0
00000000 00000000 00000000 00000001
+ 11111111 11111111 11111111 11111110
--------------------------------------------
11111111 11111111 11111111 11111111--->取反--->
10000000 00000000 00000000 00000000--->-0
补码--->正数的补码就是其自身(原码,正数三码合一)
负数的补码是其符号位不变,其他位取反然后再加1
(反码加1)
1+(-1)=0
00000000 00000000 00000000 00000001
+ 11111111 11111111 11111111 11111111
-----------------------------------------------
1 00000000 00000000 00000000 00000000 ----> 溢出的位舍弃
00000000 00000000 00000000 00000000 ----> 0
1+(-2)
00000000 00000000 00000000 00000001
11111111 11111111 11111111 11111110
11111111 11111111 11111111 11111111
10000000 00000000 00000000 00000000
----------------------------------------------
11111111 11111111 11111111 11111111---->再取反
10000000 00000000 00000000 00000000---->加1
10000000 00000000 00000000 00000000----
10000000 00000000 00000000 00000000代表的数-1