一、计算机文件大小单位

b = bit 位(比特)
B = Byte 字节
1B = 8b #一个字节等于8位 简写
1Byte = 8 bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB

二、进制之间的转换 (数字都是0开始,在几进制的基础上少1,从0计算)

二进制:由2个数字组成,有0和1    例如:0b101

八进制:由8个数字组成,有0,1,2,3,4,5,6,7  例如:0o127

十进制:由10个数字组成,有0,1,2,3,4,5,6,7,8,9  例如:250

十六进制:由16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(字母大小写都可以,分别代表10,11,12,13,14,15) 例如:0xff  0XFF 0Xff

2.1  二进制转换十进制

#例如 0b10100101  

运算:1*2^0 + 0*2^1 + 1*2^2 + 0*2^3 + 0*2^4 + 1*2^5 + 0*2^6 + 1*2^7  = 165
1*2^0 分析 左边第一位为二进制右边第一位,后面以此类推,2^0:2为固定数字,^0表示几次幂,几次幂逐渐递增。2^0就表示2的0次幂,任何数的0次幂为1

  

2.1.1 八进制转十进制

例如:0o127

运算: 7*8^0 + 2*8^1 + 1^8^2  =87

 7*8^0 分析  左边第一位为八进制右边第一位,后面一次类推,8^0:8为固定数字(表示几进制),^0表示几次幂,几次幂逐渐递增。8^0就表示8的0次幂

 

2.1.2 十六进制转十进制

#例如:0xff
运算:15*16^0 + 15*16^1 = 255
15*16^0 分析: 左边第一位15为十六进制右边第一位。16^0表示16进制的0次幂

  

2.1.3: 十进制转二进制

426 => 0b110101010
运算过程: 用426除以2,得出的结果再去不停地除以2,
直到除完最后的结果小于2停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可

  

2.1.4 十进制转八进制

426 => 0o652
运算过程: 用426除以8,得出的结果再去不停地除以8,
直到除完最后的结果小于8停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可

  

2.1.5 十进制转十六进制

运算过程:   用426除以16,得出的结果再去不停地除以16,
直到除完最后的结果小于16停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可

  

2.1.6 二进制与八进制转换

二进制与八进制对应关系:
八进制 二进制
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111 例:1010100101
八进制:从右向左 3位一隔开 不够三位用0补位 变成:
001 010 100 101
0o 1 2 4 5

  

2.1.7  二进制与十六进制转换

十六进制  二进制
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
a 1010
b 1011
c 1100
d 1101
e 1110
f 1111 例:1010100101
十六进制:从右向左 4位一隔开 不够四位用0补位 变成:
0010 1010 0101
0x2a5

  

2.1.8  八进制与十六进制的转换

先转换成二进制 再去对应转换
比如:0x2a5 转换成 1010100101 再转8进制 0o1245

  

2.2 原码,反码,补码

#1.原码和补码都是二进制数据
原码:二进制的表现形式
反码:二进制码0变成1,1变成0叫做反码,[原码][补码]之间的转换形式.(首位符号位不取反)
补码:二进制的存储形式 数据用原码形式显示
数据用补码形式存储
[原码] 和 [补码] 可以通过[反码]互相转化,互为取反加1 #2.原码的正负关系:
原码特点:第一位是1
00000000 1 表达数字正1
10000000 1 表达数字负1 #3.补码的正负关系:
补码特点:高位都是1
00000000 1 表达数字正1
11111111 1 表达数字负1 #4.运算顺序:
补码 -> 原码 -> 最后人们看到的数
***进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出*** 转换规律:
如果是一个正数: 原码 = 反码 = 补码
如果是一个负数: 原码 与 反码 之间 , 互为取反加1
原码 = 补码取反加1 给补码求原码
补码 = 原码取反加1 给原码求补码 练习:
# 9的补码是多少?
原码 0000 0000 1001
反码 0000 0000 1001
补码 0000 0000 1001
分析:1001 表示9的二进制 故原码就为0000 0000 1001,因为是正数故原码反码补码都是一样的 # -9的补码是多少?
原码 0000 0000 1001
反码 1111 1111 0110
补码 1111 1111 0111
分析: 1001 表示9的二进制 故原码就为0000 0000 1001,因为为-9,故负数的反码为原码取反,故为1111 1111 0110,补码为反码+1,为1111 1111 0111
当然也可以直接理解为负数的补码为原码取反+1 #给补码求原码
# 1111 ... 0011 (高位都是1) 负数 互为取反加1
补码 1111 ... 0011
原码 1000 ... 1101
分析:已知为负数,故高位左边第一位为1,首先先取反,故反码为1000...1100,然后原码为再加1为 1000...1101 # 0000 ... 1010 (高位都是0) 正数 原码 = 反码 = 补码
补码 0000 ... 1010
原码 0000 ... 1010
分析:正数为 原码 = 反码 = 补码 #运算相加
'''
# 9+(-5) 用二进制相加运算一下
'''
9的 :原码 0000 1001
反码 0000 1001
补码 0000 1001
-5的:原码 1000 0101
反码 1111 1010
补码 1111 1011
9+(-5): 0000 1001
1111 1011
0000 0100 (最终结果)
分析:首先先求出9的补码,再求出-5的补码,最后结果相加 就得出4的补码

  

进制之间转换——day_01的更多相关文章

  1. java 数字进制之间转换

    //10进制转换 16进制 System.out.println(Integer.toHexString(val)); System.out.println(String.format("% ...

  2. C# Socket发送接收字节数组和十六16进制之间转换函数

    近期在使用远程网络模块的时候, 需要用的Socket发送数据,远程模块指令为16进制. 官方提供的DEMO比较繁琐.不方便新手使用. 下面的转换函数可大大方便新手使用. // 16进制字符串转字节数组 ...

  3. Integer类的进制之间转换的方法

    一.两个通用方法 1.public static String toString(int i,int radix) (1)作用 将十进制的数转化成指定进制数的字符串形式:radix参数指进制数: (2 ...

  4. PHP中进制之间的互相转换

    常见的进制: 二进制   binary   ----->  bin 八进制   octal     ----->  oct 十进制   decimal ----->  dec 十六进 ...

  5. Java基础知识强化106:Java中 int 的各进制之间的转换

    1.二.八.十.十六进制之间的转换  下面是示例代码,我们直接通过JDK工具库中的方法实现的,如下: public static Integer valueOf(String s, int radix ...

  6. python中的2、8、16、10进制之间的转换

    python除法的坑 众所周知,python除法有两个运算符,一个是/,还有一个是//,那么这两个有什么不同之处呢? 从图片可以得知,使用//返回一个float类型,而使用/返回一个int类型.我们总 ...

  7. JavaScript中进制之间的转换

    JavaScript中进制之间的转换 //十进制转其他 var x = 100; alert(x); alert(x.toString(2)); //转2进制 alert(x.toString(8)) ...

  8. bgcolor RGB 和16进制之间的转换,16进制转RGB,源码

    <p>bgcolor RGB 和16进制之间的转换,16进制转RGB,源码例如:<br /> 输入 201,255,201 转换成 #C9FFC9</p> < ...

  9. matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换

    一起来学matlab-matlab学习笔记10 10_6 字符串与数值间的转换以及进制之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合 ...

随机推荐

  1. 第二次实验报告:使用 Packet Tracer 分析应用层协议

    个人信息: 姓名:倪晓东 班级:计算1811 学号:201821121020 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序 ...

  2. Spring中应用的那些设计模式

    设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,我们就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念 ...

  3. [HDU]1166敌兵布阵<静态线段树>

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目大意:给出n个点,每个点有一个值,现在有三种操作, 1.在i点加上j 2.在i点减去j 3. ...

  4. pre-commit + imagemin 实现图片自动压缩

    我们日常开发的前端项目中,图片资源会占到项目资源的很大比例,因此在考虑到性能优化,页面加载速度的时候,如何更好地处理图片就非常重要了. 首先我们可以想到的方案是:使用webpack的image-web ...

  5. vue中的生命周期事件和钩子函数

    vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染->更新->渲染.卸载等一系列过程,我们称这是vue的生命周期.通俗的将就是vue实例从创建到销毁的 ...

  6. dp例题02. 滑雪问题 (poj1088)

    poj1088滑雪问题 题目链接:http://poj.org/status Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得 ...

  7. python学习第四节 迭代器 生成器

    1:什么是迭代 可以直接作用于for循环的对象统称为可迭代对象(Iterable). 可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator). 所有的Iterable均可以通 ...

  8. Mysql数据库卸载

    Mysql数据库卸载的操作流程(Windows10): 1.停止mysql的所有服务 方法一:此电脑——管理——服务中查找到所有Mysql的服务,并停止. 方法二:cmd——net stop mysq ...

  9. Vulnhub JIS-CTF-VulnUpload靶机渗透

    配置问题解决 参考我的这篇文章https://www.cnblogs.com/A1oe/p/12571032.html更改网卡配置文件进行解决. 信息搜集 找到靶机 nmap -sP 192.168. ...

  10. echarts以地图形式显示中国疫情情况实现点击省份下钻

    首先要导入对应的包.下钻用到各个省份的json文件等内容导入之后进行相关的操作. 首先是从数据库中读取相应的数据文件.通过list方式.只有在ser出转化为json文件.在jsp页面通过ajax来进行 ...