当前位置: 首页 > news >正文

网站构建设计思路指数基金怎么选

网站构建设计思路,指数基金怎么选,学生简单网站制作教程,做哪类英文网站赚钱我们知道计算机使用的是二进制,我们⽤⼀个字节,也就是8个bit 来表示⼆进制数。 原码 十进制 原码20000 0010-21000 0010 原码其实是最容易理解的,只不过需要利⽤⼆进制中的第⼀位来表示符号位,0表示正数,1表示…

我们知道计算机使用的是二进制,我们⽤⼀个字节,也就是8个bit 来表示⼆进制数。

原码

十进制        原码
20000 0010
-21000 0010

原码其实是最容易理解的,只不过需要利⽤⼆进制中的第⼀位来表示符号位,0表示正数,1表示负数,所 以可以看到,⼀个数字⽤⼆进制原码表示的话,取值范围是 -111 1111 ~ +111 1111 ,换成⼗进制就 是 -127 ~ 127 。

反码

对于计算机来说最好只有加法,这样计算机会更加简单⾼效,我们知道在数学中 5-3=2 ,其实可以转换成 5+(-3)=2 ,这就表示减法可以⽤加法表示,⽽乘法是加法的累积,除法是减法的累积,所以在计算机中只要有加法就够了。 ⼀个数字⽤原码表示是容易理解的,但是需要单独的⼀个bit来表示符号位。并且在进⾏加法时,计算机需要先识别某个⼆进制原码是正数还是负数,识别出来之后再进⾏相应的运算。这样效率不⾼,能不能让计 算机在进⾏运算时不⽤去管符号位,也就是说让符号位也参与运算,这就要⽤到反码。

十进制        原码反码
20000 00100000 0010
-21000 00101111 1101

我们可以看到,对于正数,反码等于原码,对于负数就是符号位保持不变,其余各位对原码取反。那么我们来看⼀下,⽤反码直接运算会是什么情况,我们以 5-3 举例。

5 - 3 = 5+(-3)

十进制        原码反码
50000 01010000 0101
-31000 00111111 1100
5-3
= 5+(-3)
= 0000 0101(反码) + 1111 1100(反码)
= 0000 0001(反码)
= 0000 0001(原码)
= 1

计算结果为1,为什么差了1?我们来看⼀个特殊的运算:1-1

1-1
= 1+(-1)
= 0000 0001(反码) + 1111 1110(反码)
= 1111 1111(反码)
= 1000 0000(原码)
= -0

0+0 运算如下:

0+0
= 0000 0000(反码) + 0000 0000(反码)
= 0000 0000(反码)
= 0000 0000(原码)
= 0

从以上的运算中,我们可以看到1000 0000表示-0,0000 0000表示0,虽然-0和0是⼀样的,但是在⽤原码和反码表示时 是不同的,我们可以理解为在⽤⼀个字节表示数字取值范围时,这些数字中多了⼀个-0,所以导致我们在 ⽤反码直接运算时符号位可以直接参加运算,但是结果会不对。

补码

为了解决上面的问题,我们可以采用补码:

十进制原码反码补码
20000 00100000 00100000 0010
-21000 00101111 11011111 1110

也就是说:正数的补码和原码、反码⼀样,负数的补码就是反码+1

十进制        原码反码补码
50000 01010000 01010000 0101
-31000 00111111 11001111 1101

采用补码后,我们在来看5-3的执行过程:

5-3
= 5+(-3)
= 0000 0101(补码) + 1111 1101(补码)
= 0000 0010(补码)
= 0000 0010(原码)
= 2

5-3=2,结果真确。再来看一个特殊的:1-1

1-1
= 1+(-1)
= 0000 0001(补码) + 1111 1111(补码)
= 0000 0000(补码)
= 0000 0000(原码)
= 0

继续:0+0

0+0
= 0000 0000(补码) + 0000 0000(补码)
= 0000 0000(补码)
= 0000 0000(原码)
= 0

所以,我们可以看到补码解决了反码的问题。 所以对于数字,我们可以使⽤补码的形式来进⾏⼆进制表示。

位移运算

java中的位移运算有:

 < 左移

  > 右移

>>> ⽆符号右移

正数位移运算

System.out.println(2 << 1); // 4
System.out.println(2 >> 1); // 1
System.out.println(2 >>> 1); // 1
System.out.println(-2 << 1); // -4
System.out.println(-2 >> 1); // -1
System.out.println(-2 >>> 1); // 2147483647

乍⼀眼看到上⾯Demo的打印结果,你应该是懵逼的,接下来我来解释⼀下这个结果到底是如何运算出来的。

2<<1 :⼗进制“2”转换成⼆进制为“00000000 00000000 00000000 00000010”,再将⼆进制左移⼀位,⾼位丢弃,低位补0,所以结果为“00000000 00000000 00000000 00000100”,换算 成⼗进制则为“4”。(一个数字左移N位相当于乘以2的N次方)

2>>1: ⼗进制“2”转换成⼆进制为“00000000 00000000 00000000 00000010”,再将⼆进制 右移⼀位,低位丢弃,⾼位补0,所以结果为“00000000 00000000 00000000 00000001”,换算 成⼗进制则为“1" 。(一个数右移N位相当于除以2的N次方)

对于这两种情况⾮常好理解,那什么是⽆符号右移,以及负数是怎么运算的呢? 我们先来看 -2 > 1 ,这两个负数的左移与右移操作其实和正数类似,都是先将⼗进制 数转换成⼆进制数,再将⼆进制数进⾏移动,所以现在的关键是负数如何⽤⼆进制数进⾏表示。

负数位移运算

我们再来看 -2 > 1 。 -2⽤原码表示为 10000000 00000000 00000000 00000010 -2⽤反码表示为 11111111 11111111 11111111 11111101 -2⽤补码表示为 11111111 11111111 11111111 11111110 -2 << 1 ,表示-2的补码左移⼀位后为 11111111 11111111 11111111 11111100 ,该补码对应 的反码为:

11111111 11111111 11111111 11111100
- 1
= 11111111 11111111 11111111 11111011

该反码对应的原码为:符号位不变,其他位取反,为 10000000 00000000 00000000 00000100 , 表示-4。 所以 -2 > 1 是⼀样的计算⽅法,这⾥就不演示了。

⽆符号右移

上⾯在进⾏左移和右移时,有一点需要注意,就是在对补码进⾏移动时,符号位是固定不动的,⽽⽆符号 右移是指在进⾏移动时,符号位也会跟着⼀起移动。 ⽐如 -2 >>> 1 。 -2⽤原码表示为 10000000 00000000 00000000 00000010 -2⽤反码表示为 11111111 11111111 11111111 11111101 -2⽤补码表示为 11111111 11111111 11111111 11111110 -2的补码右移1位为: 01111111 11111111 11111111 11111111 右移后的补码对应的反码、原码为: 01111111 11111111 11111111 11111111 (因为现在的符号 位为0,表示正数,正数的原、反、补码都相同) 所以,对应的⼗进制为2147483647。 也就是 -2 >>> 1 = 2147483647

总结

这⾥总结⼀下,我们可以发现: 2 << 1 = 4 = 2*2

2 << 2 = 8 = 2*2*2

2 << n = 2*2 m << n = m * 2 右移则相反,所以⼤家以后在源码中再看到位运算时,可以参考上⾯的公式。

http://www.bjxfkj.com.cn/article/104313.html

相关文章:

  • 崇义县网站建设外贸推广如何做
  • wordpress 闭站重大军事新闻最新消息
  • 设计网站的方法如何做好宣传推广
  • 网站建设怎么弄seo网站管理
  • 我的世界做壁纸的网站seo优化对网店的推广的作用为
  • 何炅做的代言网站百度seo排名如何提升
  • 葫芦岛网站建设全国人大常委会
  • 深喉咙企业网站系统爱站网站排名查询工具
  • html新闻网站模板谷歌应用商店
  • 做网站建设的网站关键词优化推广
  • 网站组成seo定义
  • 如何做阿里巴巴的网站首页包头seo
  • 微信做淘宝客网站有哪些关键词营销优化
  • 小红书推广客服电话徐州seo外包平台
  • 传统类型的企业网站一站传媒seo优化
  • 做食品网站有哪些东西安徽网络推广
  • jquery网站开发教程it培训机构排名
  • 镇江地区做网站的公司郑州关键词优化顾问
  • p2p理财网站开发流程图东莞网络排名优化
  • 如何编辑网站内容郑州seo教程
  • 金华网站建设哪里好重庆seo推广公司
  • h5建站免费网站很卡如何优化
  • 您的网站审核未通过_原因是"网站建设不完善百度推广获客成本大概多少
  • wordpress会员制网站百度一下你就知道下载
  • 局网站内容建设考核全网热度指数
  • 广告发布网站开发关键词排名查询工具免费
  • 聊城做手机网站建设百度定位店铺位置怎么设置
  • iis怎么给网站设置权限视频剪辑培训机构哪个好
  • 郑州flash网站建设seo怎么收费的
  • 网站建设推广浩森宇特360推广登录入口官网