进制等一些其他的个人理解

本文介绍了二进制与十进制之间的转换方法,包括直接转换和记忆法。详细阐述了补码的概念,特别是对于负数的表示,并通过实例解释了浮点数的位移规则。此外,还探讨了IEEE754标准在单精度和双精度浮点数存储中的应用。逻辑运算部分提及了正负数的补码运算。内容涵盖了信息转换和计算的基础知识。
摘要由CSDN通过智能技术生成

进制记忆法

  1. 二进制转换十进制/十进制转换2进制
    记忆法关键词
x	x	x	x	x	x	x	x
7	6	5	4	3	2	1	0
128	64 32	16  8	4	2	1	
	例:假设有个数字是55;那么怎么换算为十进制;首先要明白我的128-1的这几个数字。也可以不理解,我们说个简单的方式,在这几个数字中哪几个数字可以达到55.
   不可以重复使用,顺序从左到右。
   55=32+16+4+2+1;
   当这几个数字等于55时候,同时二进制数字也就出来了,上面从128-1一共八个数
   那么所使用过的数字32、16、4、2、1,分别定义为1;
   结果就是:0011 0111;
   
反之反向推理也是可以的;

反向操作

x		x		x		x		x		x		x		x
7		6		5		4		3		2		1		0
128	64	32	16	8		4		2		1	

已知上面结果为110111二进制;
补全八个数,也就是0011 0111
结果就是 32+16+4+2+1=55;

补码

补码注意点在于,负数可以补码,正数无需补码

-23
先算正数23
0001 0111
上面2进制是正数,我们进行补码

补码方式

例如

0011 0010
从右往左,开始,遇到1后,后面所有数字反转。第一个1照抄,其实做了两个操作
第一是:负数正常二进制第一个数需要改1,还有一个是,末尾需要加一,而这个操作是相当于个这个数同时做了
1100 1110;这个就是补码后的效果;

浮点数方式

浮点数往左移加平方,反之如此
例:十进制浮点数:1234
						如果浮点数往左位移一位(123.4)
						# 注:<sup>代表次方,<sup>数字在上,<sub>数字在下
						那么运算结果就是123.4x10<sup>1</sup>
						如果右移(12340)结果则是:
						12340x10<sup>-1</sup>
	2进制浮点数:1001 0010.
	运算如果浮点数左移两位后(100100.10)
	结果则是:100100.10x2<sup>2</sup>
	同理浮点数右移两位后(1001001000)
	结果则为:1001001000x2<sup>-2</sup>
	记忆点:多少x多少次方代表意思是,
				   当前你数字的进制乘你左右位移的位数。

IEEE754

1       0000 0000 0000 0000 0000 0000 0000 0001 

-1      1111 1111 1111 1111 1111 1111 1111 1111

1.0    0 (0111 1111) 000 0000 0000 0000 0000 0000

-1.0   1 (0111 1111) 000 0000 0000 0000 0000 0000

假设思路:

745:754编号的标准

假装这个一个图片:

		符号			尾数			指数
         ⬇️ 			⬇️			⬇️
		  -        1.     01    x   2<sup>-24</sup>
IEEE754存储单元符号位指数位尾数位
单精度(余127)4byte1823
双精度(余1023)8byte11152

##上方为表格。

例题:(101.11)2 转单精度

按照我的思路线规范化,原因我也不知道,
但是需要这么做:1.0111x22 将小数点左移两位形成这样的数值,然后就开始计算了。
首先拿到指数也就是所谓的2(也可以说形容二进制的2),其次,拿取单精度的余数127
然后就得到129,去转8bit无符号存储单元=》 1000 0001

最后计算位数位,尾数位就算的是《.》后的所有数字0111

在这之后补够尾数位23位,上面表格有尾数位。

结果就是0111 0000 0000 0000 0000 000

得到的单精度显示:

符号位指数位尾数位
单精度0100000010111 0000 0000 0000 0000 000

双精度同理,看看吧:

(-10100001.111)2转双精度表示

1. 规范化 -10100001.111 = -1.0100001111 x 2<sup>7</sup>
2. 计算指数位,7 + 1023 = 1030 转11bit无符号存储单元 => 100 0000 0110
3. 计算尾数位,尾数位0100001111 后面补0,补够52位 => 0100 0011 1100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
4. 计算符号位,负数符号位为0
符号位指数位尾数位
双精度1100 0000 01100100 0011 1100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

逻辑运算

在这里插入图片描述

##转码

正数不可用补码

负数运算是可用例题
0000 0000
从左往右遇到1后所有位反转

-30x2
0001 1110
1110 0010补码
1100 0100左移一位
0011 1100补码
32+16+8+4=-60

算乘法左移一位,由右向左,乘法右边补0

-30➗2
0001 1110
1110 0010补码
1111 0001右移一位
0000 1111=8+4+2+1=-15

除法运算向右移一位,这里重点,左边补1

-19-23题目

0001 0011   19的二进制

0001 0111    正数23二进制
1110 1001     因为是负数,所以补码
  • 0001 0011
    1111 1100 等式相加,没什么好说的

    0000 0100=-4//这里,因为你算出来肯定是负数,补码,重点,如果不对,看看上面有没有算错,最后补码才能得出来正确的数字,不然必然溢出,答案也不对。


  								以上内容均为自己理解,不作为准确定理。
  								选择性观看,持续跟新进度,喜欢感谢关注
  												CSDN博主:One_Gun
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

One_Gun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值