搜索

tag 标签: 如何

相关帖子

版块 作者 回复/查看 最后发表
电流反馈放大器如何为我所用? 【TI模拟技术体验】 fish001 2017-4-24 0 0 fish001 前天 21:50
阻尼输入滤波系列 一 attach_img 电源技术 inoint98 2017-4-24 0 101 inoint98 前天 14:39
multisim如何添加仿真模型? attach_img PCB设计 xw5640264 2017-4-24 2 43 qwqwqw2088 前天 08:37
STM8L的CFG_GCR寄存器中AL要置1如何实现? 【stm32/stm8】 jiyiche 2017-4-23 1 70 残雪 前天 09:49
如何使用TI的DSP芯片cmd文件 【DSP】 Aguilera 2017-4-23 0 0 Aguilera 3 天前
作为工科男如何写好文档?有好的创意文档写不好个感觉都不是创意 attach_img 【MicroPython开源版块】 ihalin 2017-4-23 4 103 残雪 前天 09:53
真空镀膜设备的旋片式真空泵如何保养? TI技术论坛 dgdlt999 2017-4-22 0 0 dgdlt999 4 天前
大路通教你光学真空镀膜机该如何进行保养? TI技术论坛 dgdlt999 2017-4-22 0 0 dgdlt999 4 天前
ALLEGRO PCB 的约束规则问题 PCB设计 inoint98 2017-4-21 0 202 inoint98 5 天前
说说如何选择最合适你的ARM开发板 嵌入式系统编程 huangmeifang 2017-4-21 0 101 huangmeifang 5 天前
学习有目标,如何学嵌入式ARM 嵌入式系统编程 huangmeifang 2017-4-21 0 0 huangmeifang 5 天前
STM32CubeMX里如何打开官方代码BLUEMICROSYSTEM1 意法半导体AMG SensorTile开发大赛 dwwzl 2017-4-21 4 36 johnrey 5 天前
如何看待AI时代的芯片之争 FPGA/CPLD xiaolaohu123 2017-4-20 0 0 xiaolaohu123 6 天前
濮阳办理工程勘察工程测量乙级资质如何做! 信息发布 kx111 2017-4-20 0 0 kx111 6 天前
IGBT如何撬动电动汽车逆变器 【跟TI学电源】 fish001 2017-4-19 0 0 fish001 7 天前
如果一个公司不靠产品赚钱而是靠融资来维持,你觉得这公司怎么样? 工作这点儿事 eric_wang 2017-4-19 26 536 残雪 4 天前
如何办理工程勘察工程测量乙级资质! 信息发布 kx111 2017-4-19 0 0 kx111 7 天前
悬赏 求助sp12和STC89C52单片机的程序如何编写 - [悬赏 1 枚芯币] 汽车电子 LLH-123 2017-4-19 1 121 低调的路人 7 天前
aducm360新手,如何对各模块理解运用 单片机 1729038421 2017-4-19 1 108 littleshrimp 7 天前
如何用可控硅控制三相电机 模拟电子 chuzhaonan 2017-4-18 4 230 chunyang 7 天前

相关日志

分享 FPGA的冷思考:如何摆脱只会看代码而不会写代码的宿命?
taiyangyu_2 2017-4-24 18:02
明德扬 至简设计法设计的16位复数乘法器,比一般乘法器更加节省乘法器资源。 本案例节选明德扬 fpga培训 班中的练习,代码简洁,欢迎比较学习。潘老师基于至简设计法的案例,绝不是世面上乱七八糟的代码,我们的代码简 单清晰,一步一步设计,是让你学习FPGA的最佳选择。 一、功能描述 在FPGA中乘法器占用的资源比较多,所以为了想办法尽可能减少这一资源,本案例采用了三个实数乘法器完成四个实数乘法器才能完成的复数乘法。 本案例实现16位复数乘法器的功能。 二、平台效果图 仿真效果图 三、实现过程 输入输出信号列表如下: 信号名 I/O 位宽 说明 clk I 1 系统工作时钟 50M rst_n I 1 系统复位信号,低电平有效 vld_in I 2 输入有效指示信号 ar I 16 输入数据 ar ai I 16 输入数据 ai br I 16 输入数据 br bi I 16 输入数据 bi qr O 32 输出数据 qr qi O 32 输出数据 qi vld_out O 1 输出有效指示信号 有复数 p 、 a 和 b ,且 p=ab ,有: p=pr+pi=ab=(ar+ai)(br+bi) 其中: pr=arbr-aibi=ar(br+bi)-(ar+ai)bi pi=arbi+aibr=ar(br+bi)+(ai-ar)br 以此通过增加加法,节省了一个乘法器,实现了节省乘法器的 16 位复数乘法。 代码资料下载: http://pan.baidu.com/s/1eS1hGFS
0 个评论
分享 谷歌是如何抓取并分析页面里的JavaScript的?
huicnet 2017-4-13 15:53
我们测试了谷歌爬虫是如何抓取 JavaScript,下面就是我们从中学习到的知识。 认为 Google 不能处理 JavaScript ?再想想吧。Audette Audette 分享了一系列测试结果,他和他同事测试了什么类型的 JavaScript 功能会被 Google 抓取和收录。 长话短说 1. 我们进行了一系列测试,已证实 Google 能以多种方式执行和收录 JavaScript。我们也确认 Google 能渲染整个页面并读取 DOM,由此能收录动态生成的内容。 2. DOM 中的 SEO 信号(页面标题、meta 描述、canonical 标签、meta robots 标签等)都被关注到。动态插入 DOM 的内容都也能被抓取和收录。此外,在某些案例中,DOM 甚至可能比 HTML 源码语句更优先。虽然这需要做更多的工作,但这是我们好几个测试中的一个。 引言:Google 执行 JavaScript 读取 DOM 早在 2008 年, Google 就 成功抓取 JavaScript,但很可能局限于某种方式。 而在今天,可以明确的是,Google 不仅能制定出他们抓取和收录的 JavaScript 类型,而且在渲染整个 web 页面上取得了显著进步(特别在最近的 12 到 18 个月)。 在 Merkle,我们的 SEO 技术团队想更好地理解谷歌爬虫能抓取和收录什么类型的 JavaSscript 事件。经过研究,我们发现令人瞠目的结果,并已证实 Google 不仅能执行各种 JavaScript 事件,而且能收录动态生成的内容。怎么样做到的?Google 能读取 DOM。 DOM 是什么? 很多搞 SEO 的都不理解什么是 Document Object Model(DOM)。 当浏览器请求页面时会发生什么,而 DOM 又是如何参与进来的。 当用于 web 浏览器,DOM 本质上是一个应用程序的接口,或 API,用于标记和构造数据(如 HTML 和 XML)。该接口允许 web 浏览器将它们进行组合而构成文档。 DOM 也定义了如何对结构进行获取和操作。虽然 DOM 是与语言无关的 API (不是捆绑在特定编程语言或库),但它普遍应用于 web 应用程序的 JavaScript 和 动态内容。 DOM 代表了接口,或“桥梁”,将 web 页面与编程语言连接起来。解析 HTML 和执行 JavaScript 的结果就是 DOM。web 页面的内容不(不仅)是源码,是 DOM。这使它变得非常重要。 JavaScript 是如何通过 DOM 接口工作的。 我们兴奋地发现 Google 能够读取 DOM,并能解析信号和动态插入的内容,例如 title 标签、页面文本、head 标签和 meta 注解(如:rel = canonical)。可阅读其中的完整细节。 这一系列测试和结果 因为想知道什么样的 JavaScript 功能会被抓取和收录,我们单独对 谷歌爬虫 创建一系列测试。通过创建控件,确保 URL 活动能被独立理解。下面,让我们详细划分出一些有趣的测试结果。它们被分为 5 类: JavaScript 重定向 JavaScript 链接 动态插入内容 动态插入 Meta 数据 和页面元素 一个带有 rel = “nofollow” 的重要例子 例子:一个用来测试谷歌爬虫理解 JavaScript 能力的页面。 1. JavaScript 重定向 我们首先测试了常见的 JavaScript 重定向,用不同方式表示的 URL 会有什么样结果呢?我们选择了 window.location 对象进行两个测试:Test A 以绝对路径 URL 调用 window.location,而 Test B 使用相对路径。 结果:该重定向很快被 Google 跟踪。从收录来看,它们被解释为 301 – 最终状态的 URL 取代了 Google 收录里的重定向 URL。 在随后的测试中,我们在一个权威网页上,利用完全相同的内容,完成一次利用 JavaScript 重定向到同一个站点的新页面。而原始 URL 是排在 Google 热门查询的首页。 结果:果然,重定向被 Google 跟踪,而原始页面并没有被收录。而新 URL 被收录了,并立刻排在相同查询页面内的相同位置。这让我们很惊喜,以排名的角度上看,视乎表明了JavaScript 重定向行为(有时)很像永久性的 301 重定向。 下次,你的客户想要为他们的网站完成 JavaScript 重定向移动,你可能不需要回答,或回答:“请不要”。因为这似乎有一个转让排名信号的关系。支持这一结论是引用了 Google 指南: 使用 JavaScript 为用户进行重定向,可能是一个合法的做法。例如,如果你将已登录用户重定向到一个内部页面,你可以使用 JavaScript 完成这一操作。当仔细检查 JavaScript 或其他重定向方法时,以确保你的站点遵循我们的指南,并考虑到其意图。记住 301 重定向跳转到你网站下是最好的,但如果你没有权限访问你网站服务器,你可以为此使用 JavaScript 重定向。 2. JavaScript 链接 我们用多种编码方式测试了不同类型的 JS 链接。 我们测试下拉菜单的链接。历史上的搜素引擎一直不能跟踪这类型的链接。我们想确定 onchange 事件处理器是否会被跟踪。重要的是,这只是执行特定的类型,而我们需要是:其它改动后的影响,而不像上面 JavaScript 重定向的强制操作。 例子: Google Work 页面的语言选择下拉菜单。 结果:链接被完整地抓取和跟踪。 我们也测试了常见的 JavaScript 链接。下面是最常见类型的 JavaScript 链接,而传统的 SEO 则推荐纯文本。这些测试包括 JavaScript 链接代码: 作用于外部 href 键-值对(AVP),但在一个标签内(“onClick”) 作用 href 内部 AVP(“javascript : window.location”) 作用于 a 标签外部,但在 href 内调用 AVP(“javascript : openlink()”) 等等 结果:链接被完整抓取和跟踪。 我们下一个测试是更进一步地测试事件处理器,如上面测试的 onchange。具体地说,我们希望利用鼠标移动的事件处理器,然后隐藏 URL 变量 ,该变量只在事件处理函数(在该案例是 onmousedown 和 onmouseout)被触发时执行。 结果:链接被完整抓取和跟踪。 构造链接:我们知道 Google 能执行 JavaScript,但想确认它们是否能读取代码里的变量。所以在该测试中,我们连接能构造 URL 字符串的字符。 结果:链接被完整抓取和跟踪。 3. 动态插入内容 很明显,这些都是重点:动态插入文本、图像、链接和导航。优质的文本内容对搜索引擎理解网页主题和内容是至关重要的。在这个动态网站的时代,它的重要性是无需质疑的。 这些测试,设计出来是为了检查在两个不同场景下动态插入文本的结果。 1. 测试搜索引擎能否统计动态插入的文本,而文本是来自页面 HTML 源码内的。 2. 测试搜索引擎能否统计动态插入的文本,而文本是来自页面 HTML 源码外的(在一个外部 JavaScript 文件内)。 结果:在两个案例中,文本都能被抓取和收录,并且页面是根据该内容进行排名。爽! 为了了解更多相关信息,我们测试了一个通过 JavaScript 编写的客户端全局导航,而导航里的链接都是通过 document.writeIn 函数插入,并且确定它们能被完全抓取和跟踪。应该指出的是:Google 能解释使用 AngularJS 框架 和 HTML5 History API(pushState)构建的网站,能渲染和收录它,并能像传统静态网页一样排名。这就是 不禁止谷歌爬虫 获取外部文件和 JavaScript 的重要性,而且这也许是 Google 正在从 《支持 Ajax 的 SEO 指南》 中移除它的原因。当你能简单地渲染整个页面时候,谁还需要 HTML 快照呢? 经过测试后发现,不管什么类型的内容,都是同样的结果。例如,图像加载到 DOM 后会被抓取和收录。我们甚至做了这样的一个测试:通过动态生成 data-vocabulary.org 结构数据来制作 breadcrumb(面包屑导航),并将其插入 DOM。结果呢? 成功插入后的面包屑出现在搜索结果中了 (search engine results page)。 值得注意的是,Google 现在 推荐用 JSON-LD 标记 形成结构化数据。我敢肯定将来会出现更多基于此的东西。 4. 动态插入 Meta 数据 页面元素 我们将各种对 SEO 至关重要的标签动态插入到 DOM: Title 元素 Meta 描述 Meta robots Canonical tags 结果:在所有案例中,标签都能被抓取,其表现就像 HTML 源码里的元素一样。 一个有趣的补充实验帮助我们理解优先顺序。当存在冲突信号时,哪一个会胜出呢?如果源码里有 noindex、nofollow 标签,而 DOM 里有 noindex、follow 标签的话,将会发生什么呢?在这协议里,HTTP x-robots 响应头部的行为如何作为另一个变量?这将是未来综合测试的一部分。然而,我们的测试显示:当冲突时,Google 会无视源码里的标签,而支持 DOM。 5. 一个带有 rel =“nofollow” 的重要例子 我们想测试 Google 如何应对出现在源码和 DOM 的链路级别的 nofollow 属性。我们也因此创建了一个没有应用 nofollow 的控件。 对于 nofollow ,我们分别单独测试源码 vs DOM 生成的注解。 源码里的 nofollow 正如我们所期待的那样运行(链接没被跟踪)。而 DOM 里的 nofollow 却失效(链接被跟踪,并且页面被收录)。为什么?因为在 DOM 里修改 href 元素的操作发生得太晚了:Google 在执行添加 rel=”nofollow” 的 JavaScript 函数前,已准备好抓取链接和队列等待着 URL。然而,如果将带有 href =”nofollow”的 a 元素插入到 DOM,nofollow 和链接因在同一时刻插入,所以会被跟踪。 结果 从历史角度上看,各种 SEO 推荐是在任何可能的时候,要尽可能专注 ‘纯文本’ 内容。而动态生成内容、AJAX 和 JavaScript 链接会损害主流搜索引擎的 SEO。显然,这对 Google 不再是问题。 JavaScript 链接以类似普通的 HTML 链接方式运行(这只是表面,而我们不知道幕后程序进行了什么操作)。 JavaScript 重定向都会以类似于 301 重定向方式对待。 动态插入内容,甚至 meta 标签,如 rel canonical 注解,无论在 HTML 源码,还是在最初 HTML 被解析后触发 JavaScript 生成 DOM ,都以同等方式对待。 Google 视乎能完全渲染页面和理解 DOM ,而不仅是源码。实在是令人可不思议!(记得允许谷歌爬虫获取那些外部文件和 JavaScript。) Google 已经在创新方面,以惊人的速度将其它搜索引擎甩在身后。我们希望看到其它搜索引擎能有同样类型的创新。如果他们要保持竞争力,并在 web 新时代取得实质性进展,这意味着它们要更好地支持 HTML5、JavaScript 和 动态网站。 对于 SEO,那些没有理解上述基本概念和 Google 技术的人,应该好好研究和学习,以赶上当前技术。如果你不把 DOM 考虑在内,您可能会丢失一半份额。
64 次阅读|0 个评论
分享 五分钟理解Java的反射API
huicnet 2017-3-21 10:46
目录 反射API 基本类型和方法 注解 概要 注释 像java一样,一种具有反射功能的语言。允许开发人员在运行时检查类型、方法、字段、注解等,并在程序运行时决定是否使用。 为此,Java的反射API提供类,类,字段,构造函数,方法,注释和其他。 使用它们可以与编译时未知的类型进行交互,例如创建未知类的实例并对它们调用方法。 这个快速提示旨在让您深度了解什么是反射,它在Java中的使用,以及它可以用于什么。 之后,你将准备好开始或工作更长的教程。 为了充分使用它,你应该很好地理解Java的类构造器,特别是什么类和方法以及它们如何关联。 了解注释可解锁单独的部分。 Reflection API 我们从一个简单的Java代码开始(代码针对有一定java基础的阅读人员) URL url = new URL( "https://sitepoint.com/java" ); String urlString = url .toExternalForm(); System.out.println(urlString); 我决定 在编译时 (即当我在写代码时)创建一个URL对象,并且调用了其中的一些方法。下面演示了我使用Java的反射API完成了同样的事情: // the gateway to reflection is the `Class` instance // for the class you want to operate on Class? type = Class.forName( "java.net.URL" ); // fetches the constructor that takes a `String` argument // and uses it to create a new instance for the given string Constructor? constructor = type . getConstructor (String. class ); Object instance = constructor.newInstance( "https://sitepoint.com/java" ); // fetches the `toExternalForm` method and invokes it on // the instance that was just created Method method = type . getMethod ( "toExternalForm" ); Object methodCallResult = method.invoke(instance); System.out.println(methodCallResult); 使用反射API的确比直接写代码要笨重一点. 但是使用反射你会发现,你在代码当中的调用细节 (比如说我用的URL这个类以及我调用其中的方法) 变成了仅仅一个参数. 结果呢,在编译期间URL以及toExternalForm并没有绑定, 它们是在程序开始运行的时候才被决定绑定的 反射的大多数用例都是“框架”的场景下,想想junit, 比如说, 执行所有被@ test注解的方法. 一旦框架在classpath扫描的时候找到注解它就会调用getMethod以及invoke函数去执行用户代码. spring和其他的一些web框架在搜索控制器以及url映射的收也差不多是这么做的,对可扩展的应用程序来说反射的另外一个用途就是在运行时加载用户提供的插件 基本类型和方法 调用反射API的方法是Class :: forName。 在它的简单形式中,这个静态方法只需要一个完全限定的类名,并为它返回一个Class实例。 该实例可用于获取字段,方法,构造函数等。 通过构造器函数获取类对象,getConstructor方法可以使用构造函数参数的类型调用,就像我上面做的那样。 类似地,可以通过调用getMethod并传递其名称以及参数类型来访问特定方法。 上面的getMethod(“toExternalForm”)调用没有指定任何类型,因为该方法没有参数。 这里有一个方法: Class? type = Class.forName( "java.net.URL" ); // `URL::openConnection` has an overload that accepts a java.net.Proxy Method openConnection = type . getMethod ( "openConnection" , Proxy. class ); 这些调用返回的实例分别是Constructor和Method类型。 要调用底层成员,他们提供类似于Constructor :: newInstance和Method :: invoke的方法。 后者的一个有趣的细节是,要调用该方法的实例需要作为第一个参数传递给它(它指类的实例)。 其他参数将被传递给被调用的方法。 继续openConnection示例: openConnection .invoke (instance, someProxy); 如果要调用静态方法,则将忽略实例参数,因此可以为null。 注解 注解是反射的重要组成部分。 事实上,注解主要针对反射。 它们旨在提供程序运行时访问的元信息,然后用于塑造程序的行为。 所有重要的反射相关类型,如类,字段,构造函数,方法和参数实现AnnotatedElement接口。 链接的Javadoc包含了注释如何与这些元素(直接呈现,间接呈现或关联)相关的详细解释,但是它最简单的形式是:getAnnotations方法以注释实例数组的形式返回该元素上存在的注释 ,然后可以访问其成员。 总结 Java的反射API允许在运行时自动检查类型,方法,注释等,并调用在编译时未知的构造函数和方法。首先,请调用Class.forName("fully.qualified.class.Name"),然后调用getConstructors,getMethods,getAnnotations或类似方法。调用伴随构造函数的newInstance和方法的invoke一起发生。 你也可以使用 反射分解代码 并更改非公共字段或调用非公共方法 - 这是一个冒险的做法,而且 在Java 9中变得更加困难 。如果你很好奇,并希望知道所有的API的来龙去脉, 在Java的官方文档中给出了反射线索 。到目前为止,API有点过时并有一些缺点,但是新的替代方案存在,查看 方法句柄 (自Java 7)和 变量句柄 (自Java 9)。
68 次阅读|0 个评论
分享 电子产品,居多如何选择
热度 1 电级达人 2016-11-4 10:12
我是比较喜欢,电子类的产品,比如:新出来的手机,我就要去查它相关的信息,功能是否好坏,有什么独特之处;给大平台也是一样的,网上有那么多各大平台,但它们有各自优势;它们能在众多平台里存活下来,是有一定的基础,有一定的实力,而我能否在这电子工程世界里脱颖而出还是未知数;所以我要抓紧加油。
727 次阅读|1 个评论
分享 如何判断MOS工作什么状态
A001 2016-6-13 20:31
如何判断MOS工作什么状态
197 次阅读|0 个评论
分享 如何用电脑自带的计算器进行各种计算
箫声欲碎 2016-3-29 08:42
如何用电脑自带的计算器进行各种计算 一。如何从电脑中调出计算器? 以下以电脑 Windows 7 系统中调出计算器做例子说明。 (电脑 Windows XP 系统2014年4月8日正式宣布“退休”,从当日起,Windows XP 系统不再提供补丁修复漏洞等服务,WindowsXP 系统不再得到安全保护,所以我已从Windows XP 山头撤出。) 单击屏幕左下角的“开始”按钮,单击“所有程序”按钮,拉动滑块,找到“附件”按钮单击,在弹出的列表中就会看到“计算器”,单击“计算器”(已用红笔标出),就可弹出计算器。 你也可以在“计算器”上单击右键,把它发送到桌面快捷图标,以便随时可打开。见图-1 和图-2: 图-1 图-2 上面图-2计算器默认选择“十进制”。叫十进制科学型计算器。 单击“十六进制”,“十进制”,“八进制”,“二进制”等按钮,可以调出有关进制计算器。而2进制科学型计算器适合程序员编程。现市面上还有高中生,大学生专用计算器。 二。计算器上的英文计算符号是什么意思? 1. CE :在标准型计算器中清除输入键。在数字输入期间按下此键将清除输入寄存器中的值并显示"0." 2. . M+:把目前显示的值放在存储器中;中断数字输入 3. M-:从存储器内容中减去当前显示值;中断数字输入. 4. MRC:第一次按下此键将调用存储器内容,第二次按下时清除存储器内容. 6.← 在数字后面删除数字。 7. MR清除存储器内容.,清除后显示为0. 8. MU(Mark-up and Mark-down键):按下该键完成利率和税率计算. 10. ← 删除当前显示数字的最后一位。 11. Sin计算显示数字的正弦。只能用于十进制数字系统 12. cos 计算显示数字的余弦。只能用于十进制数字系统。 若要计算反余弦,请使用“Inv”+“cos”。若要计算双曲余弦,请使用“Hyp”+“cos”。若要计算反双曲余弦,请使用“Inv”+“Hyp”+“cos”。cos 只能用于十进制数字系统。Dat 在“统计框”对话框内输入显示的数字。只有先单击“Sta”, 该按钮才可用。 13. Exp 只能用于十进制数字系统,指数限制为四位数。指数中只能使用十进制数(键 0-9)。 14. Hyp 设置“sin”、“cos”和“tan”的双曲函数。 15. In 计算自然对数(以 e 为底)。若要计算 e 的 x 次方(其中 x 是当前数字),请使用“Inv”+“ln”。 16. Mod 显示 x/y 的模数或余数,例如,计算 5 除以 3 的模数,单击“5 MOD 3 =”,结果为 2。 17. MS 将显示数字保存在内存中。 18. 平方根√ :显示一个输入正数的平方根。 19. Ave 计算“统计框”对话框中显示数值的平均值。若要计算平均方值,请使用“Inv”+“Ave”。只有先单击“Sta”,该按钮才可用。 20. Dat 在“统计框”对话框内输入显示的数字。只有先单击“Sta”,该按钮才可用。 21. 度数 在十进制模式下将三角函数输入设置为度 22. dms 将显示数字转换为度-分-秒格式(假设显示数字是用度数表示的)。若要将显示数字转换为用度数表示的格式(假设显示数字是用度-分-秒格式表示的),请使用“Inv”+“dms”。dms 只能用于十进制数字系统。 23. pi 显示 pi 的值 (3.1415...)。若要显示 2 * pi (6.28...),请使用“Inv”+“pi”。“pi”只能用于十进制数字系统。 24. 弧度 在十进制模式下将三角函数输入设置为弧度。 25. sqrt 计算显示数字的平方根。 26. Sum 计算“统计框”对话框中显示数值的总和。若要计算平方和,请使用“Inv”+“Sum”。只有先单击“Sta”,该按钮才可用。 27. tan 计算显示数字的正切。若要计算反正切,请使用“Inv”+“tan”。若要计算双曲正切,请使用“Hyp”+“tan”。若要计算反双曲正切,请使用“Inv”+“Hyp”+“tan”。“tan”只能用于十进制数字系统。 28. x^2 计算显示数字的平方。若要计算平方根,请使用“Inv”+“x^2”。 29. x^3 计算显示数字的立方。若要计算立方根,请使用“Inv”+“x^3”。 30. x^y 计算 x 的 y 次方。例如,若要计算 2 的 4 次方,请单击“2 x^y 4 =”,结果为 16。(等号不要漏掉)。 以下是高中生大学生专用计算器上一些英文符号意思: 1.COMP 是指基础运算 2. SD 是指标准偏差 3. REG 是指回归线求解 4. Lin是以e为底数的对数回归线 5. Log是以10为底数的回归线 Quad是抛物线 6. Deg 是角度中"度"的意思 7. Rad 是角度中"弧度"的意思。 8. Gra 是角度中"梯度"的意思。 9. Fix 是指保留小数点的个数 10. Sci 是指科学计数法保留位数 11. Norm 是指常规模式。 12. Disp 是分数白留形式(有带分数(ab/c)和假分数(d/c)) 三.用十进制计算器计算的实例 1. 计算 18+(8-2)/3*4的值 。 这是四则运算式。四则运算的法则是:先乘除后加减,先括号内后括号外。如果无视四则运算法则,一次性输入算式,则得数为23.333…,显然是错误的。正确的做法应该尽量使用上面图-2所示十进制科学型计算器并且要注意四则运算法则。正确算法是:如图-2,按8然后按减号-,再按2,按等号=,得出6.(即先算括号得数),按除号/ ,按3,按乘号* ,按4 ,按等号= ,得8 ,(即算乘除得数),然后按加号+ ,按18 ,按等号=,最后得出算式正确结果26 。注意,这里巧妙地利用等号=来适应四则运算法则。 有人会问,上面算式如果把18+改为18- ,如何计算呢?这容易。当算完括号和乘除后,得数为8 ,请记住得数8,按删除键MR, 计算框中的8被删除,成为0.然后按18 ,按减号- ,按刚才的得数8 ,按等号= ,最后得结果为10 。 注意,按计算器上的 MR 按钮可清除输入的数字。 2. 计算 8的平方是多少? 解:在图-2右上方单击“查看”按钮,在下拉菜单上单击“科学型”,(已用红笔标出)。见图-3: 图-3 弹出下图,见图-4: 图-4 解 :按图-4右侧的8 ,按左侧的X2, 按等号= 得数为64 。8的平方是64 。 3. 计算 5的立方是多少? 解 :按图-4右侧的5 ,按左侧的X3 , 按等号= ,得125 ,5的立方是125 。 4.计算 三角函数 Sin 700 解:按图-4右侧的70,按左侧的sin ,按等号= ,即得所求约为0.9397 . 5. 计算 24 , 解: 按图-4右侧的2 ,按左侧的Xy ,按右侧的4 ,按等号= ,得数为16 。 6. 计算以10为底,2.9的对数 。 解:按图-4右侧2.9 ,按左侧对数符号 log ,按等号= ,得数约为0.4624 . 7. 计算 22+32+42 的值。 解: 按图-4右侧的2,按Xy ,按2 ,按等号= ,得4,按加号+ ,按3 ,按Xy ,按2 ,按等号= ,得13 ,按加号+ ,按4 ,按Xy ,按2 ,按等号= ,得29 。即2,3,4各数的平方之和为29. 8. 把 792 的 2 删除掉 解:按 792 ,按←后, 792 即变成了 79 。 . 9. 求 21/6 的余数 解:按 21 ,按余数键 Mod ,按 6 ,按等号 = ,即得 21/6 的余数 3 。 10.求76的平方根 解: 按76 ,按平方根号√ ,得76的平方根约为8.718 11.求45的立方根 解 按45 ,按立方根号(见计算器1的左侧),得45的立方根约为3.557 12. 把十进制的 21783 转换为二进制数字(适合程序员编程使用的数字) 。 解 :勾选图-2左侧的“十进制“,输入21783 ,然后选中左侧的二进制按钮(Bin按钮)单击,21783即变成了适合程序员使用的二进制的数字101010100010111 。 13.已知 圆的半径r是4cm , 求 周长L 解 根据公式L=2πr ,在图-4 中按2,按* ,按π ,按4 ,按= ,得数约为25.13 注意,上面公式计算时不能漏掉乘号* ,否则出错。 注意,当你计算下一条算式时 住 , 记要先按全部清除键 MR 清除上一次计算得出的数字,才输入下一条算式。 四.单击科学型计算器上方的“查看”按钮,弹出的下拉菜单,可以设置转换各种计算器,单位转换,日期计算,工作表计算等,下图是“工作表”计算。见图-5: 图-5 下图是在图-3单击“单位转换”按钮后,弹出的对话框,单击右侧的文本框下拉箭头 ▼,把摄氏25度转换为华氏的度数。见图-6: 图-6 计算器经过多次打开后,要恢复原始形,即图-2的样子,单击“查看”按钮,在弹出的下拉菜单中单击“基本”按钮,就可恢复。
1 次阅读|0 个评论
分享 如何制作一个vagrant的base box
Timson 2016-1-6 12:44
虽然这里 已经罗列出了许多个base box,但有些时候,可能根据自身的业务需要一些特殊的box,比如,笔者遇到的,需要一个带桌面环境和浏览器测试用的box,这个在网上可没有找到,无奈之下,只能自己装虚拟机,做一个base box出来,以便使用。本文主要针对ubuntu的base box的制作。 步骤如下:(环境 OS:ubuntu12.04_Desktop virtualbox:4.1.12) 1.在物理机安装好 ubuntu系统 ,在此系统上安装virtualbox 2.下载一个需要的ubuntu版本的iso镜像 3.创建一个新的虚拟机 给虚拟机起个名字为”vagrant-precise32″ 确保您分配足够的磁盘空间,40GB足够了。 确保默认的 内存分配 也不用太高,建议360M。 如果不需要,禁用音频,USB控制器等。大多数应用程序都不需要播放音乐!因此,节约资源,禁用这些功能。 确保 网络控制器 设置为NAT,为了 端口转发 正常工作。 4.启动虚拟机,安装ubuntu,确保配置如下(非强制,如打算分发此box,建议遵循如下约定) Hostname:vagrant- ,例:vagrant-ubuntu-Steve Domain: vagrantup.com Root Password: vagrant Main account login: vagrant Main account password: vagrant 5.安装完毕后,进入虚拟机 6.根据自己需要,安装一些常用软件 sudo apt-get -y install vim 7.创建admin组 sudo groupadd admin 8.添加vagrant用户到admin组 sudo usermod -G admin vagrant 9.修改sudoers文件 sudo vim /etc/sudoers #添加或修改如下行(有些发行版还需Disable requiretty): Defaults env_keep=”SSH_AUTH_SOCK” %admin ALL=NOPASSWD: ALL 10.安装puppet(chef没有计划装进去,如需要可安装ruby,rubygems,chef) sudo apt-get install puppet puppetmaster 11.安装ssh sudo apt-get install openssh-server 12.安装vagrant的public keys mkdir ~/.ssh/ cd ~/.ssh wget http://github.com/mitchellh/vagrant/raw/master/keys/vagrant wget http://github.com/mitchellh/vagrant/raw/master/keys/vagrant.pub mv vagrant.pub authorized_keys 13.Install virtual box guest additions(为了 共享文件夹 , 端口转发 等) (1) First, build the necessary packages. You may have to look these up for your system, but they should be fairly similar. On Ubuntu and Debian based systems they are as follows: $ sudo apt-get install linux-headers-$(uname -r) build-essential (2) Next, make sure to insert the guest additions image by using the GUI and clicking on “Devices” followed by “Install Guest Additions.”. Then run the following to mount the CD Rom: $ sudo mount /dev/cdrom /media/cdrom (3) And finally, run the shell script which matches your system. For linux on x86, it is the following: $ sudo sh /media/cdrom/VBoxLinuxAdditions.run If you didn’t install a Desktop environment when you installed the operating system, as recommended to reduce size, the install of the VirtualBox additions should warn you about the lack of OpenGL or Window System Drivers, but you can safely ignore this. 14.清除缓存 sudo apt-get clean 15.关闭虚拟机,进入virtual box directory(~/VirtualBox VM/vagrant-precise32) vagrant package –output ubuntu_32.box –base vagrant-precise32 总结:以上步骤完成后生成的ubuntu_32.box就可以拿来用了,用vagrant box add ,vagrant init等自己测试看看吧。
496 次阅读|0 个评论
分享 CC2538之TinyOS例程实验:5-Adc_Temp片内温度读取实验 TinyOS如何直接使用C文件
dan158185 2016-1-5 16:07
使 用过CC2530的朋友肯定对TI的片内温度不陌生;下面带来2538的片内温度读取;先看实验结果: 代码部分:选择使用TinyOS来实现 此处的实验是向大家展示如何TinyOS如何直接使用C(h)文件,打消大家认为TiinyOS编程只能用nesC的误区 1,温度读取函数tinyos-main-release_tinyos_2_1_2\tos\chips\cc2538\adc 下的cc2538_temp_sensor.c和cc2538_temp_sensor.h cc2538_temp_sensor.h文件: view plain copy print ? #ifndefCC2538_TEMP_SENSOR_H_ #defineCC2538_TEMP_SENSOR_H_ #defineCONST0.58134//(VREF/2047)=(1190/2047),VREFfromDatasheet #defineOFFSET_DATASHEET_25C827//1422*CONST,fromDatasheet #defineTEMP_COEFF(CONST*4.2)//FromDatasheet #defineOFFSET_0C(OFFSET_DATASHEET_25C-(25*TEMP_COEFF)) uint16_tGet_CC2538_Temp( void ); #endif cc2538_temp_sensor.c文件: view plain copy print ? #includestdbool.h #includestdint.h #includestdio.h #include"hw_memmap.h" #include"gpio.h" #include"hw_ioc.h" #include"ioc.h" #include"interrupt.h" #include"adc.h" #include"sys_ctrl.h" #include"hw_sys_ctrl.h" #include"systick.h" #include"hw_rfcore_xreg.h" #include"hw_cctest.h" #include"cc2538_temp_sensor.h" uint16_tGet_CC2538_Temp( void ){ uint16_tui16Dummy; // //EnableRFCore(neededtoenabletempsensor) // SysCtrlPeripheralEnable(SYS_CTRL_PERIPH_RFC); // //ConnecttempsensortoADC // HWREG(CCTEST_TR0)|=CCTEST_TR0_ADCTM; // //Enablethetemperaturesensor // HWREG(RFCORE_XREG_ATEST)=0x01; // //ConfigureADC,Internalreference,512decimationrate(12bit) // SOCADCSingleConfigure(SOCADC_12_BIT,SOCADC_REF_INTERNAL); // //Triggersingleconversiononinternaltempsensor // SOCADCSingleStart(SOCADC_TEMP_SENS); // //Waituntilconversioniscompleted // while (!SOCADCEndOfCOnversionGet()){ } // //Getdataandshiftdownbasedondecimationrate // ui16Dummy=SOCADCDataGet()SOCADC_12_BIT_RSHIFT; return ui16Dummy; } 2,编写TinyOS例程:Adc_TempAppC.nc,Adc_TempC.nc, makefile文件: makefile文件: view plain copy print ? COMPONENT=Adc_TempAppC CFLAGS+=-DUSE_TIMER_HANDLER CFLAGS+=-DNOT_USE_PRINTFC_BUT_USE_PRINT include$(MAKERULES) A dc_TempAppC.nc文件 view plain copy print ? configurationAdc_TempAppC { } implementation { componentsMainC,Adc_TempC; componentsnewTimerMilliC()asTimer1; Adc_TempC-MainC.Boot; Adc_TempC.Timer1-Timer1; } Adc_TempC.nc文件: view plain copy print ? /******************************************************************* *实验附加----CC2538片内温度读取 *节点需求数1 *编译命令makecc2538cb ********************************************************************/ #include"Timer.h" #include"printf.h" #include"cc2538_temp_sensor.h" moduleAdc_TempC{ usesinterfaceTimerTMilliasTimer1; usesinterfaceBoot; } implementation{ taskvoidtime1_Task(); uint16_tui16Dummy=0; /*************************************************** *启动事件 ****************************************************/ eventvoidBoot.booted(){ /**开启一秒的周期性定时器(单位毫秒)Timer1**/ callTimer1.startPeriodic(1000); } /*************************************************** *任务time1_Task ****************************************************/ taskvoidtime1_Task(){ doubledOutputVoltage; ui16Dummy=Get_CC2538_Temp(); printf("ADCrawreadout:%d\n",ui16Dummy); //温度计算 dOutputVoltage=ui16Dummy*CONST; dOutputVoltage=((dOutputVoltage-OFFSET_0C)/TEMP_COEFF); ui16Dummy=dOutputVoltage*10; printf("Temperature:%d",ui16Dummy/10); printf(".%d",ui16Dummy%10); printf("C\n"); } /*************************************************** *Timer1定时时间到事件 ****************************************************/ eventvoidTimer1.fired(){ /****提交time1_Task任务***/ posttime1_Task(); } } 大家可以看到Adc_TempC.nc文件中 view plain copy print ? #include"cc2538_temp_sensor.h" ui16Dummy=Get_CC2538_Temp(); 这些不就是直接使用了C文件了吗?nesC只是C的方言,相信即使没有nesC语言基础的朋友应该也能大概看懂代码干了什么;就是1秒采集一次片内温度然后串口打印 至此可以引申如果是需要给TinyOS引入其他的传感器呢,呵呵,其实就是拿来厂家提供的C源码直接 使用即可,不用去写成nesC;
个人分类: CC2538之TinyOS例程|216 次阅读|0 个评论
分享 如何用一台HiNet网关连接多台以太网PLC
hignton 2015-11-26 16:46
一台HiNet网关最多连接254台以太网接口的PLC或者触摸屏,连接步骤如下: 1、通过IE浏览器进入设备云管理平台( plc.hignton.com ),并点击“综合平台一入口”; 2、在登录页输入公司名称和登录密码,默认登录密码为12345678; 3、点击“设备”栏,并在设备菜单下点击“新建”; 4、在“识别标识”中输入设备名称(必须保持同一网络内的唯一性)--选择绑定的网关、PLC型号、接口类型,如果是以太网口的话则需要输入PLC的IP地址。该处PLC的IP地址必须保持和网关在同一个局域网内(如:网关IP地址为192.168.10.254,则PLC的IP地址必须为:192.168.10.X,X可以是1-253中的任意数); 5、设备新建完成后,打开客户端软件,即可找到您新建的PLC设备了,并可进行远程操作了。
200 次阅读|0 个评论
分享 LED灯如何节能省电?
JTEMC 2015-10-26 14:10
LED灯如何节能省电?既然LED灯主打节能省电,那么它是如何体现出来的?br\ \ br对替换产品来说,在相同的光通量下,可用光效来估算节能比例。比如40瓦白炽灯的光效约为13流明/瓦,光通量是520流明;替换用10瓦荧光灯的光效约为50流明/瓦,光通量约500流明,比白炽灯节能80%;替换用5瓦的LED球泡灯,光效约100流明/瓦,光通量同样约为500流明,比白炽灯节能95%,比荧光灯节能50%。\ \ 如果按照每天点灯时间为4小时计算,则一年需要点灯1460个小时。brbr此次检测5W的LED球泡灯对比白炽灯以及荧光灯做替换推算,5瓦的LED球泡灯的效能,相当于10W荧光灯和40W白炽灯的效能。那么一年里,白炽灯的耗电量则达58400瓦时,荧光灯则有14600瓦时,LED球泡灯则是7300瓦时。再转换为度(编者注:1度=1千瓦时),则白炽灯一年需使用58\.4度电,荧光灯14\.6度电,LED球泡灯7\.3度电。\ \ \ brbr以2015年3月份广州居民生活用电0\.61元/度计算,一年白炽灯的电费为35\.62元,荧光灯电费为8\.91元,LED球泡灯为4\.38元。而且,如果把球泡灯用在商场或办公室场合这种需要大量使用灯具的场合,随着时间的推移所省的电费是相当可观。
336 次阅读|0 个评论
分享 新型随机函数的制作
sjd_dzgc 2015-9-23 19:10
  新型随机函数和以往的随机函数一样的地方是:使用时需要首先设置种子,每次调用得到一个数据,输出的是一些乱码。   不同之处是这种随机函数输出的数据之间是没有关联的,你不能用连续几个输出值推算其计算公式,这是因为它生成方式所致,它没有公式你也推导不出来。   以往的随机函数是由算式生成的,所以它的数据是由算法关联起来的,可能是线性关联甚至高维度的关联。   新函数是采用构造法生成随机数的,现在基本数据是字节,别的结构可以用字节来组合,所以就单说以字节为单位的随机函数,它的元素是 0至 255共256个,构造法是这样运作的,例如要建造256×N长度的随机数组,所要材料是256×N个元素,一般需要元素分布均匀,所以每种元素取N个,将这些元素组成一个数组,初始状态如何都没关系,然后对这个数组进行随机排序,随机排序就是让数组内的元素位置随机的交换,一般可以用循环来完成,例如256×N的长度,用一个循环变量i,从头到尾的循环,另外随机的在256×N中选择一个位置,用这个位置的元素和第i个元素进行交换,这样循环一次每个元素都被交换了,交换完成后新的顺序建立了,生成了新的数组。从256×N中选择位置的操作可以用其它随机函数来完成,也可以拼凑一些随机性较强的变数来完成。一遍随机排序不理想可以进行多遍,一般借助于优秀的随机函数一遍就够了。这样子一下子就生成了一个长度为256×N的数组。如果借助于其它随机函数那么其需要的种子也就是此种生成方式的种子了,否则其中生成随机位置的参数等将作为种子。   新型随机函数数据的生成机制上面已经说了,为了照顾到应用习惯,模拟老式随机函数的使用方式。方法是你可以生成一定数量随机数据,函数每调用一次输出一个数据,用完后继续生成新的,这样函数就形成了。具体细节是每次生成的量不可过小,要大于元素总和数的数倍,为了均匀一般是整数倍,为什么呢?可以这样看,例如这个量是由256个不同元素组成,那将出现一个问题,我们的输出可能是每次不相同的元素,可能连续256次都有此特点,这显然是让数组有了某些规律性,所以生成量要更大些才能消除这个规律。   新型随机函数的随机性比老式的要更好些,它是数据混合均匀后的输出,什么数据都是等概率的,也可能输出的是零值,一般随机函数没有此特性。   现在的输出数据是无符号字节数组,很容易变成其它形式,例如做32位无符号整形数组,只要每次取四个无符号字节就可以组合。   基本的新函数已经做出性能还是不错的,并且生成速度可达到每秒几十兆字节。   新函数还没有名称随便征求一下。由于还没有见到类似的随机数生成方式,所以暂时可称其为“构造随机函数”或“乱排随机函数”。   此种方法的理论基础是热力学第二定律——熵增加原理,当我们以多种方式影响数组的序列时,数组将向着更加混乱的方向发展而不可能相反。   虽然此种方式可以完全不利用任何随机函数,但利用随机函数可以使工作效率增高。所以本方法也可以看成是随机函数的改良方式,主要益处是生成的数据之间没有连带关系,所以适合于做信息加密中的密钥数组。   即便是最简单的随机函数例如C语言中的rand(),它的运算只是一乘一加,用此来制作乱排函数也能得到一个性能优良的输出,原来数据间的关联不见了,周期大大的提高了,原来周期只有16M,现在至少大于10G(短时间测算)。   如果是性能优良的随机函数其改造为乱排函数后,性能更加优良,直接用作密钥是能够胜任的,对于这样的无规律数据发生器破解者毫无办法。   如何控制乱排函数,当然是用户密码,可以在原始数组阶段参与控制,也可以在随机排序部分参与控制是相当灵活的,多少字节的用户密码都可以被充分利用上。这是分组密码所没有的优势,后者只能使用有限的那几位所以相当虚弱。   即便到了量子计算机时代,如果密钥是独立未知数也照样不能破解,这是肯定的。这一点很容易证明。   
个人分类: 计算机应用|206 次阅读|0 个评论
分享 Ubuntu中如何卸载ibus google 拼音
白丁 2015-8-16 21:28
sudoapt-getremoveibus sudoapt-getremoveibus-googlepinyin
个人分类: linux/unix使用|250 次阅读|0 个评论
分享 如何培养新人
lanjin 2015-6-13 21:44
最近一位软件同事被派去车间搞生产,原因是硬件不熟悉,对产品结构以及细节了解不够,各个硬件波形不是很懂,所以要实习一段时间把整个产品结构了解清楚。现在由他来测板子信号正常与否以及维修有问题的板子。我来指导指导他如何测试板子。我发现他有个特点,就是有问题不自己去解决而是找我来解决,当我问他这么简单的问题怎么都没想到时他说他哪知道是这样,他之前又没弄过,我弄过所以我才知道。有一次维修板子,逆变板,四个桥,每个桥两个LED指示灯。有个桥的驱动芯片老坏,上电就坏,他换了好几个,都坏了,最后叫我去帮忙看怎么回事,我叫他把驱动芯片拆下来,然后上电看看,结果上电后一个LED不亮,我就说降压芯片有问题。我说这么明显的故障你怎么没排除。他说哪知道拆了驱动芯片LED亮与不亮。也就是说不知道LED和驱动芯片有什么关系。这我可以理解,没有电路图所以不知道电路结构。但是有个明显的问题,就是LED一个亮一个不亮,他应该能发现异常。为什么这么明显的现象他发现不了,即使不知道电路结构,测了那么多板子,两个LED那么耀眼他难道熟视无睹?现在出问题的板子只有一个LED亮,这么明显的现象还用找理由推脱说不知道LED不亮是不是有问题。对比法是实践的比较好的方法。拿一个标准的板子和有问题的板子,各个信号一对比就知道问题大概出在哪里。这是初中高中乃至大学都经常用的实验方法他却不懂得用了,你说我该怎么说他。最后把降压芯片换了就好了,驱动芯片也没烧,两个LED都亮,板子正常。新人难免会犯些错误。其实站在他的角度想问题,我也一样遇到过这样的事,就是对一个东西不熟悉的时候总感觉很不踏实,或者说疑问很多,这个波形是不是正常的,那个电压是不是正常的,管脚电阻值对不对。。。我都有过这些疑惑。但是这些问题我都会自己解决,自己查资料。现在我养成的习惯是能自己解决的自己解决,实在是解决不了再请教高人。只有这样才能养成自己的做事风格,独立思考是非常重要的。一有问题立即到处找人解决的肯定不是做技术的,而是做维修工的。因为做技术的都会自己钻研。做事风格不是一天两天就能形成的,得经历一段时间自己慢慢摸索。这个过程有点痛苦,因为没有外界帮助只能逼迫自己独立完成。但是一旦养成独立思考独立做事的风格那么你将能够独挡一面。再大的困难都不会使自己胆怯。
320 次阅读|0 个评论

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-4-26 08:07 , Processed in 0.040553 second(s), 19 queries , Redis On.

Powered by EEWORLD电子工程世界

© 2017 http://bbs.eeworld.com.cn/

返回顶部