首页 > 其他分享 >进制转换

进制转换

时间:2022-12-24 22:57:08浏览次数:35  
标签:转换 进制 16 二进制 1.3 补码 八进制 原码

1.1 计算机硬件基本认知

cpu:   中央处理器.   相当于人的大脑.运算中心,控制中心.
内存:  临时存储数据.  优点:读取速度快。 缺点:容量小,造价高,断电即消失.
硬盘:  长期存储数据.  优点:容量大,造价相对低,断电不消失。 缺点:读取速度慢.
操作系统:统一管理计算机软硬件资源的程序

1.2计算机文件大小单位

b = bit  位(比特)
B = Byte 字节

1Byte = 8 bit   #一个字节等于8位  可以简写成 1B = 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB

1.3进制转换

二进制:由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	        

1.3.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= 
1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165

1.3.2 八进制 转化成 十进制

#例:	0o127
运算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87

1.3.3 十六进制 转化成 十进制

#例:	0xff
运算:15*16^0 + 15*16^1 = 255

*小练习: 转化成对应进制

723 => 2 
654 => 2
723 => 8  
654 => 8
723 => 16 
654 => 16

1.3.4 十进制 转化成 二进制

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

1.3.5 十进制 转化成 八进制

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

1.3.6 十进制 转化成 十六进制

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

*小练习: 转化成对应进制

723 => 2 
654 => 2
723 => 8  
654 => 8
723 => 16 
654 => 16

1.3.7 二进制与八进制转换

二进制与八进制对应关系:
八进制  二进制
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

1.3.8 二进制与十六进制转换

十六进制  二进制
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

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

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

*小练习: 转化成对应进制

0x1DD => 8 
0x29a => 8
0o573 => 16
0o336 => 16

1.4原码,反码,补码(了解)

# 1.原码 或 补码 都是二进制数据  
    原码: 二进制的表现形式
    反码: 二进制码0变1,1变0叫做反码,[原码][补码]之间的转换形式.(首位符号位不取反)
    补码: 二进制的存储形式     

	数据用[补码]形式存储
	数据用[原码]形式显示
    [原码] 和 [补码] 可以通过[反码]互相转化,互为取反加1

# 2.提出补码的原因
	补码的提出用于表达一个数的正负(可实现计算机的减法操作)
	计算机默认只会做加法,实现减法用负号: 5+(-3) => 5-3
	乘法除法:是通过左移和右移 << >> 来实现

# 3.[原码]形式的正负关系:
    原码特点: 第一位是1
           00000000 1  表达数字正1
           10000000 1  表达数字负1
       
# 4.[补码]形式的正负关系:
    补码特点: 高位都是1
           00000000 1  表达数字正1
           11111111 1  表达数字负1

# 5.运算顺序:
    补码 -> 原码 -> 最后人们看到的数
    ***进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出***

    转换规律:
        如果是一个正数:  原码 = 反码 = 补码
        如果是一个负数:  原码 与 补码 之间 ,  互为取反加1 
                       原码 = 补码取反加1   给补码求原码
                       补码 = 原码取反加1   给原码求补码

*小练习:原码 与 反码的转换

#给原码求补码
    -6 的补码是多少? 
     6 的补码是多少?
     9 的补码是多少?
    -9 的补码是多少?
#给补码求原码
	1111 ... 0011 (高位都是1) 
	0000 ... 1010 (高位都是0)
# 9+(-5) 用二进制相加运算一下

标签:转换,进制,16,二进制,1.3,补码,八进制,原码
From: https://www.cnblogs.com/hyf120/p/17003501.html

相关文章

  • 类型转换
    类型转换由于java是强类型语言,所以要进行有些运算的时候,要进行类型转换低----------------------------------------------------->高byte,short,char---->int--->long......
  • python标准化日期转换
    将.号\号-号的日期格式,全部统一成一种方式#coding:utf-8importre#目标:2021-05-28content="""白日依2021/05/26山尽,黄河入2021.05.27海流。欲穷05-28-2020千里......
  • Java对象转换最佳方案
    系统变的复杂,系统的层次划分越来越细,边界也越来越明确。然后每一层之间一般都有自己要处理的领域对象,统称为pojo一般在model或者domain包下(类的后缀不能为pojo)。常见的......
  • 代码随想录算法训练营Day23|669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、
    代码随想录算法训练营Day23|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树669.修剪二叉搜索树与删除节点类似,但不需要讨论左/......
  • 把jpg文件读取到内存char* 再转换成CImage
    网络上找到大神写的转换方法,不过就记下来,学习学习;当然转成CImage之后就可以从CImage转换成HBITMAP了voidDrawPic(CDC*pDC,char*buf,intlen){//内存数据转换......
  • cv::Mat到YUV420的转换
    某些特定场合我们会经常遇到yuv420格式的视频文件,这种视频帧无法直接用于opencv,故而,需要进行格式转换;幸运的是,opencv提供了rgb到yuv420的格式转换函数;下面给出基本用法; ......
  • python:类型转换
      类型转换不是万能的,毕竟强扭的瓜不会甜,我们需要注意:1.任何类型,都可以通过str(),转换成字符串2.字符串内必须真的是数字,才可以将字符串转换为数字......
  • C# DataTable和List之间相互转换
    ​ 目录前言想法两者的区别个人想法完整代码方式一方式二类型转换 前言最近在捣鼓DataTable,弄到了类型转换,既然弄了,那就整个记录。有不足之处,请多多指教。......
  • CAD中如何将匿名块转换成普通块?
    CAD图纸中经常会看到一些名字前带*号的图块,即匿名块,是由一些专业软件或插件创建的。CAD匿名块无法双击用块编辑器或用在位编辑(REFEDIT)编辑,如果想编辑匿名块,必须炸开。如果......
  • Flask 动态路由转换器
      fromflaskimportFlaskapp=Flask(__name__)@app.route('/user/<name>')defshow_user(name):return'Mynameis%s'%[email protected]('/age/<i......