二进制_简学:二进制数制的应用

81de0286ca6a7f34340a9798b519a4b3.png

设现有正整数150,二进制形式为10010110,现有如下题目,求其尽可能简单的解法。

题目一:判断该正整数是否是2的乘方;

解法:

8b7bf2442403939ac00f46eb1474580a.png

由上表可以看出2的乘方的二进制形式只有一个bit为1,因此判断一个正整数A是否为2的乘方,可以判断A&(A-1)是否等于0,若结果为0,则是2的乘方,若不为0则不是2的乘方。

题目二:判断正整数是否能被4整除;

解法:

e3927d5a5e5b6bd11f488a1942b7bce0.png

一个正整数可以将其表示为A=M*8+N;M是A的高位bit组成的数字,N是低三位bit组成的数字,例150=(10010)18*8+6;因为M*8是能被4整除的,因此只需判断N能否被4整除即可,从上式可以看出150的N值不能被4整除,所以该正整数不能被4整除。

题目三:不用乘法器求该正整数*3的结果;

解法:

d69a4972506dd46eca1988ded6059113.png

根据上表一个正整数A*2的结果为将该正整数的二进制左移一个bit位,并低位补0。因此求一个正整数*3的结果根据乘法的基本定律得到:A*3=A*(2+1)=A*2+A,而A*2可以转换为左移补0的动作,因此A*3可以转换为不用乘法器的运算。

题目4:求一个未知整数除以7的余数,该整数的范围为0-255,要求不使用除法器;

解法:该整数的最大可能值为255,因此该整数的二进制形式可以用8个bit位表示X7X6X5X4X3X2X1X0;根据题目二的思想,可以将该整数表示为A=X7*128+X6*64+X5*32+X4*16+X3*8+X2*4+X1*2+X0;

A/7=(X7*128+X6*64+X5*32+X4*16+X3*8+X2*4+X1*2+X0)/7;

A/7=X7*(128/7)+X6*(64/7)+X5*(32/7)+X4*(16/7)+X3*(8/7)+(X2*4+X1*2+X0)/7;

根据除法的基本定律可以知道除法结果=商和余数:

分别计算上式的元素:

2b70da1206833a2a2807af21370e565b.png

根据除法的基本定律可以得出A/7:

余P:X7*2+X6*1+X5*4+X4*2+X3*1+X2*4+X1*2+X0

=X7X6+X5X4X3+X2X1X0(P的最大值3+7+7=17)

商Q:X7*18+X6*9+X5*4+X4*2+X3*1+0

=9*X7X6+X5X4X3

由上式可以看出余数P的最大值可能为17因此余数P还能除以7;

因此真正的余数和商等于:

余:P/7取余p;商:Q+P/7取商q

因为P的值为0-17是有限的值,因此可以枚举求其商和余数:

case(P)

0:q=0;p=0;

1:q=0;p=1;

2:q=0;p=2;

。。。。。

17:q=2;p=3;

得到一个0-255的未知整数除以7的最终结果:

商=Q+q=9*X7X6+X5X4X3+q;余数=p,pq可有case(P=X7X6+X5X4X3+X2X1X0)求得,因此整个运算不需要用到除法器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

令人惊讶的注射

所以,我欠吉姆道歉。 他编写了一个有效的模拟和JUnit测试,我在回顾中告诉他,我认为它没有达到他的预期。 当我错了时,这种情况对我来说就像是一个错误 。 称其为理想的意外副作用。 假设您有以下两类: public class S…

swagger 动态设置版本号_如何快速玩转swagger

Spring Boot 框架是目前非常流行的微服务框架,我们很多情况下使用它来提供 Rest API。而对于 Rest API 来说很重要的一部分内容就是文档,Swagger 为我们提供了一套通过代码和注解自动生成文档的方法,这一点对于保证 API 文档的及时性将有很大…

angular java_带有Angular JS的Java EE 7 –第1部分

angular java今天的帖子将向您展示如何使用Java EE 7和Angular JS构建一个非常简单的应用程序。 在去那里之前,让我告诉您一个简短的故事: 我必须承认,我从来都不是Java语言的忠实拥护者,但是我仍然记得我第一次使用它。 我不记得…

操作系统的msxml组件版本过低_Zabbix 5.0 LTS 版本安装

zabbix 5.0 版本于 5 月 11 日正式发布,是最新的 LTS(长期支持)版本,5.0 带来很多功能和特性,后面会陆续推出文章介绍,下面主要介绍下 5.0 版本的安装。环境要求5.0 版本对基础环境的要求有大的变化,最大的就是对 php …

登录判断_Spring Security之多次登录失败后账户锁定功能的实现

在上一次写的文章中,为大家说到了如何动态的从数据库加载用户、角色、权限信息,从而实现登录验证及授权。在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等…

通过TLS发送的Java邮件

抽象 本博客的目的是演示如何使用Java Mail通过具有TLS连接的SMTP服务器发送电子邮件。 免责声明 这篇文章仅供参考。 在使用所提供的任何信息之前,请认真思考。 从中学到东西,但最终自己做出决定,风险自负。 要求 我使用以下主要技术完成了…

html实体转化字符串 php_php将字符串转为HTML的实体引用的一个类

class HtmlEncode {static $_convertToHtmlEntitiesSrcEncodingUTF-8;/*** 将非ASCII字符串转换成HTML实体** example HtmlEncode::encode("我信了"); //输出:我信了* param string $s 要进行编码的字符串* return string 返回HTML实体引用*/public static function …

arcgis导入excel字段不显示_ArcGIS从excel中导入坐标出现空白无法选择字段

怎样将PDF转成EXCEL怎样将PDF转成EXCEL EXCEL和PDF这两种文档大家应该都比较熟悉,EXCEL表格是使用于数据图表得整理,而PDF文件是用于扫描或者存档,但是这两者之间经常需要进行转换得,比如说经常需要将归档的PDF文件转换成EXCEL表格…

atomic java_在Java中添加@atomic操作

atomic java总览 原子操作如何在Java中工作,OpenJDK / Hotspot中是否存在可以转换为原子的当前替代方法。 反馈 在我以前的文章中, 对可变字段进行原子操作。 有几次指出,不管善意如何,“修复”先前的行为都不太可能继续进行。 …

a4988 脉宽要求_Allegro MicroSystems - A4988: 带转换器和过流保护的 DMOS 微步驱动器

A4988 是一款完全的微步电动机驱动器,带有内置转换器,易于操作。该产品可在全、半、1/4、1/8 及 1/16 步进模式时操作双极步进电动机,输出驱动性能可达 35 V 及 2 A。A4988 包括一个固定关断时间电流稳压器,该稳压器可在慢或混合…

磁盘支持的阵列列表

有时,您的列表可能会变得太大而无法容纳在内存中,因此您必须采取一些措施以避免内存不足。 做到这一点的正确方法是流传输–而不是将所有内容都放入内存中,您应该从源流传输数据并丢弃已经处理的条目。 但是,在某些情况下&#…

apache图片cache容量_apache利用mod_cache缓存图片等

一,引言以前我写过二篇有关图片,静态文件的缓存文章,一个是用varnish来缓存,一个用squid来缓存,apache当然也可以用来做图片,静态文件的缓存,下面我将详细说明一下,怎么完装和配置二…

艾特某人代码实现_Vue@某人,At某人,仿新浪微博@某人,@user,艾特,艾特某人...

atuser.vue展开更多群成员import getCaretCoordinates from textarea-caretexport default {props: {value: { //输入框初始值type: String,default: null},suffix: { //插入字符链接type: String,default: },loop: { //上下箭头循环type: Boolean,default: true},avoidEmail:…

spring batch_Spring Batch作为Wildfly模块

spring batch长期以来,Java EE规范缺少批处理API。 今天,这对于企业应用程序来说是必不可少的。 这是最后固定与JSR-352批处理应用程序的Java平台现在的Java EE提供7 JSR-352得到了它的的灵感Spring Batch的对手。 两者涵盖相同的概念,尽管生…

h3c 链路聚合测试_良无磐石固,虚名复何益?- 链路聚合协议互通测试

一、描述链路聚合是将多条链路聚合在一起形成一个汇聚组,以实现负荷在各成员链路中的分担,同时也提供了更高的连接可靠性。Cisco的链路聚合有几种方式:手工、LACP(包括active和passive两种)、PAgP(Port-aggregation Protocol),其中…

Spring@懒惰注释

介绍: 默认情况下, Spring框架在应用程序启动时加载并热切初始化所有bean。 在我们的应用程序中,我们可能有一些非常消耗资源的bean。 我们宁愿根据需要加载此类bean。 我们可以使用Spring Lazy批注实现此目的 。 在本教程中,我们…

变压器符号_行输出变压器的结构、符号及电路分析

行输出变压器又称逆程变压器、回扫变压器,俗称行输出,它是电视机、显示器中的一个重要变压器。1.行输出变压器结构行输出变压器的全部绕组和高压整流管均密封在其中,底部引出各个绕组的引脚,高压输出采用高压引线直接送至显像管的…

西南医院微服务咋查得到_#全国最好医院排行榜#发布:成都这4家牛了!四川31个专科排全国前十(总榜)...

病急不能乱投医!近日,一年一度、令人期待的——复旦版《2018年度中国医院排行榜(总榜)》全新揭晓了~这份榜单不仅是是中国医院学科建设的一个标杆也是大众疑难杂症寻找好医院的重要参考四川4家医院入百强!华西全国第二…

jit 和 jvm_关于JVM和JIT的一点点

jit 和 jvm如您所知,JVM(Java Virtusal Machine)使Java能够遵循“一次写入,随处运行”的范例。 JVM的核心包括以下组件: 堆 叠放 PermGen和方法区域 JIT编译器 代码缓存 堆是在应用程序代码开发阶段为您使用的每…

voxelnet_ue4商城资源Voxel Sandbox Toolkit体素沙盒工具箱

Unreal Engine虚幻游戏引擎素材资源 Unreal Engine Marketplace –Voxel Sandbox Toolkit体素沙盒工具箱体素沙盒工具箱是一个新的改进版本的体素生成从2016年适应4.22的需要。它用不同类型的立方体、树和拾取网格生成无限世界。因为额外的代码实现比以前的版本快得多。理想的创…