中国海洋大学计算机基础实验报告

合集下载

计算机基础实验报告总结

计算机基础实验报告总结

计算机基础实验报告总结
《计算机基础实验报告总结》
在计算机基础实验中,我们学习了许多关于计算机硬件和软件的知识,并且通
过实验掌握了一些基本的操作技能。

在本次实验中,我们主要学习了计算机的
基本组成结构、操作系统的安装与使用、网络的基本概念以及数据的存储和管
理等内容。

通过实验的学习,我们对计算机的工作原理有了更深入的理解,并
且掌握了一些实用的技能。

首先,我们学习了计算机的基本组成结构,包括中央处理器(CPU)、内存、硬盘、显卡等硬件组件。

通过实验,我们了解了这些硬件组件的作用和相互关系,对计算机的整体结构有了更清晰的认识。

其次,我们学习了操作系统的安装与使用。

在实验中,我们通过安装和配置操
作系统的实践,掌握了操作系统的基本功能和使用方法,包括文件管理、程序
运行、网络设置等。

这些知识对我们日常的计算机使用非常重要。

另外,我们还学习了网络的基本概念和数据的存储和管理。

通过实验,我们了
解了计算机网络的组成和工作原理,掌握了基本的网络配置和管理方法。

同时,我们也学会了数据的备份和恢复,以及数据的安全管理方法,这些都是非常实
用的技能。

通过这次实验,我们不仅学到了许多关于计算机基础知识和操作技能,还培养
了实验设计和实践能力。

在未来的学习和工作中,这些知识和技能都将对我们
有很大的帮助。

希望在以后的学习中,我们能够继续努力,不断提高自己的计
算机基础知识和技能,为将来的发展打下坚实的基础。

计算机基础实验报告实验一二参考模板

计算机基础实验报告实验一二参考模板

计算机基础实验报告实验一二参考模板一、实验目的计算机基础实验一的目的在于让学生熟悉计算机的基本操作和常用软件的使用,培养学生的动手能力和问题解决能力。

实验二则侧重于加深对计算机系统和网络知识的理解,提高学生的综合应用能力。

二、实验环境实验在学校的计算机实验室进行,每台计算机均安装了 Windows 操作系统,并配备了常用的办公软件、编程工具和网络浏览器等。

实验室还提供了稳定的网络环境,以便进行网络相关的实验操作。

三、实验内容与步骤(一)实验一1、计算机硬件的认识打开计算机主机箱,观察主板、CPU、内存、硬盘、显卡等硬件设备的外观和接口。

了解各硬件设备的主要功能和性能指标。

2、操作系统的安装与设置使用安装光盘或 U 盘启动盘,安装 Windows 操作系统。

进行系统初始化设置,如用户名、密码、日期时间等。

安装驱动程序,确保硬件设备正常工作。

3、常用办公软件的使用打开 Word 软件,进行文档的创建、编辑、排版和保存。

使用 Excel 软件进行表格的制作、数据计算和图表绘制。

利用 PowerPoint 软件创建演示文稿,添加文字、图片、动画等元素。

(二)实验二1、计算机网络基础了解计算机网络的组成、分类和拓扑结构。

学习 IP 地址、子网掩码、网关和 DNS 的概念和设置方法。

通过命令提示符(CMD)窗口,使用 Ping 命令检测网络连通性。

2、网络服务与应用配置 Web 服务器和 FTP 服务器,实现网页的发布和文件的上传下载。

学会使用浏览器访问网页、搜索信息和下载文件。

了解电子邮件的工作原理,注册邮箱并进行邮件的收发。

四、实验结果与分析(一)实验一1、硬件认识方面,学生能够准确识别计算机的主要硬件设备,并对其功能有了初步的了解。

但对于一些较新的硬件技术和性能参数的理解还不够深入。

2、操作系统的安装和设置过程较为顺利,大部分学生能够独立完成。

但在驱动程序的安装过程中,少数学生遇到了兼容性问题,需要通过更新驱动或寻求技术支持解决。

大学计算基础实验报告

大学计算基础实验报告

实验名称:大学计算机基础实验实验日期:2023年11月X日实验学时:2学时实验性质:基础性实验实验目的:1. 理解并掌握计算机基础知识,包括操作系统、计算机网络、信息安全等。

2. 熟练运用计算机基本操作,提高计算机应用能力。

3. 培养实验操作技能,提高团队协作能力。

实验内容:一、操作系统实验1. 实验目的:了解操作系统的基本功能,掌握文件操作、窗口操作等基本操作。

2. 实验步骤:(1)启动计算机,进入操作系统界面。

(2)熟悉桌面环境,包括任务栏、开始菜单等。

(3)创建文件夹,并练习文件操作(如复制、粘贴、删除等)。

(4)调整窗口大小、位置,切换窗口。

(5)使用搜索功能查找文件。

3. 实验结果:成功完成上述操作,熟悉操作系统基本功能。

二、计算机网络实验1. 实验目的:了解计算机网络的基本概念,掌握网络配置、网络连接等操作。

2. 实验步骤:(1)查看网络连接状态,包括有线和无线连接。

(2)配置网络参数,如IP地址、子网掩码、默认网关等。

(3)测试网络连通性,如ping命令测试。

(4)使用浏览器访问网络资源。

3. 实验结果:成功配置网络连接,实现网络通信。

三、信息安全实验1. 实验目的:了解信息安全的基本概念,掌握杀毒软件的使用、数据加密等操作。

2. 实验步骤:(1)安装杀毒软件,并进行病毒库更新。

(2)使用杀毒软件扫描系统,查杀病毒。

(3)设置防火墙,防止恶意软件入侵。

(4)使用加密软件对数据进行加密。

3. 实验结果:成功完成上述操作,提高计算机信息安全防护能力。

四、团队协作实验1. 实验目的:培养团队协作能力,提高实验操作效率。

2. 实验步骤:(1)分组,明确各成员职责。

(2)分工合作,共同完成实验任务。

(3)交流实验心得,分享经验。

3. 实验结果:成功完成实验任务,提高团队协作能力。

实验总结:本次大学计算机基础实验,使我更加深入地了解了计算机基础知识,掌握了计算机基本操作。

通过实验,我提高了计算机应用能力,培养了团队协作精神。

计算机基础实验报告

计算机基础实验报告

实验名称:计算机基础操作与常用软件使用实验时间:2023年X月X日实验地点:计算机实验室实验目的:1. 熟悉计算机的基本操作,包括开机、关机、鼠标和键盘的使用。

2. 掌握常用软件的基本操作,如文字处理软件Word、表格处理软件Excel、演示文稿软件PowerPoint等。

3. 培养良好的计算机使用习惯,提高计算机应用能力。

实验内容及步骤:一、计算机基本操作1. 开机操作(1)将电源插头插入电源插座,确保电源开关处于关闭状态。

(2)按下电源按钮,等待计算机启动。

(3)进入操作系统界面。

2. 关机操作(1)关闭所有正在运行的程序。

(2)点击任务栏的“开始”按钮,选择“关机”选项。

(3)确认关机操作,等待计算机完全关闭。

3. 鼠标和键盘的使用(1)鼠标操作:移动鼠标,点击、双击、右键点击等。

(2)键盘操作:熟悉键盘布局,掌握字母、数字、符号的输入,以及快捷键的使用。

二、常用软件操作1. 文字处理软件Word(1)新建文档:点击“开始”按钮,选择“新建”→“Word文档”。

(2)输入文字:使用键盘输入文字,可以使用格式工具栏调整文字格式。

(3)保存文档:点击“文件”菜单,选择“保存”或“另存为”,选择保存路径和文件名。

2. 表格处理软件Excel(1)新建工作簿:点击“开始”按钮,选择“新建”→“Excel工作簿”。

(2)输入数据:在单元格中输入数据,可以使用公式进行计算。

(3)保存工作簿:点击“文件”菜单,选择“保存”或“另存为”,选择保存路径和文件名。

3. 演示文稿软件PowerPoint(1)新建演示文稿:点击“开始”按钮,选择“新建”→“PowerPoint演示文稿”。

(2)创建幻灯片:使用“新建幻灯片”功能创建新幻灯片,添加文本、图片、图表等元素。

(3)保存演示文稿:点击“文件”菜单,选择“保存”或“另存为”,选择保存路径和文件名。

实验结果与分析:1. 通过本次实验,掌握了计算机的基本操作,包括开机、关机、鼠标和键盘的使用。

计算机基础实验报告

计算机基础实验报告

计算机基础实验报告引言计算机科学作为一门快速发展的学科,对于我们现代社会的发展起到了至关重要的作用。

而计算机基础实验则是我们学习计算机科学的基石。

通过实验,我们可以深入了解计算机的运作原理、编程语言的使用以及计算机系统的构建。

本文将对我在计算机基础实验中所学到的内容进行总结和分享。

实验内容一:计算机硬件与操作系统在第一次实验中,我们学习了计算机的基本组成部分,包括中央处理器(CPU)、存储器、输入输出设备等。

通过实践操作,我们实际拆卸和组装了一台计算机,并了解了各个硬件的功能和作用。

此外,我们还学习了计算机操作系统的基本概念和功能,如进程管理、内存管理和文件系统等。

这使我们对计算机系统的整体架构和工作原理有了更深入的了解。

实验内容二:Python编程语言在第二次实验中,我们学习了一种常用的编程语言——Python。

通过编写简单的代码,我们熟悉了Python的基本语法和函数。

Python的简洁和易读性使其成为了开发者的首选语言之一。

我们还学习了Python的常用库,如NumPy和Pandas,使我们能够更高效地处理数据和进行科学计算。

实验内容三:计算机网络与网络编程在第三次实验中,我们学习了计算机网络的基本原理和网络编程的基础知识。

我们了解了常见的网络协议,如TCP/IP和HTTP,以及网络拓扑结构和局域网的设置方法。

通过编写简单的网络程序,我们掌握了网络通信的基本操作和数据传输的原理。

这让我们更好地理解了互联网的工作原理和网络安全的重要性。

实验内容四:Java编程语言最后,我们学习了另一种常用的编程语言——Java。

Java是一种功能强大的面向对象编程语言,被广泛应用于企业级应用和大型系统的开发。

通过实践,我们熟悉了Java的语法、类和对象的概念,以及常用的开发框架和工具。

Java的跨平台特性使其成为了跨平台开发的首选语言。

结语通过计算机基础实验,我们对计算机科学的核心原理和应用有了更深入的了解。

2024年计算机基础实训报告总结

2024年计算机基础实训报告总结

2024年计算机基础实训报告总结一、引言计算机基础实训是计算机科学与技术专业的一门重要实践课程,通过该实训可以提高学生的实际动手能力和问题解决能力。

本次实训包括了计算机组成原理、操作系统、数据结构、网络原理等多个方面的内容,让我们全面了解了计算机的基本原理和工作方式。

本文将对实训的主要内容和收获进行总结和评价。

二、实训内容1. 计算机组成原理在计算机组成原理实训中,我们通过对计算机硬件的拆卸和组装,了解了计算机的各个组成部分和它们之间的关系。

同时,我们还学习了计算机的运行原理和指令执行过程,对计算机的内部工作原理有了更加深入的了解。

2. 操作系统操作系统实训主要涵盖了操作系统的安装和配置、进程管理、文件管理等方面的内容。

通过实际操作,我们掌握了操作系统的基本功能和使用技巧,并且深入学习了进程管理和文件管理的原理与实现方式。

3. 数据结构在数据结构实训中,我们学习了常见的数据结构如栈、队列、链表和树等,并且通过实际编程实现了这些数据结构。

这部分实训使我们对数据结构的理论知识有了更加深入的认识,并且提高了我们的编程和算法设计能力。

4. 网络原理网络原理实训主要包括了网络基本概念、网络协议和网络配置等内容。

通过这部分实训,我们了解了互联网的基本工作原理和各种常用网络协议的功能和使用方式。

同时,我们还学习了网络配置的方法和技巧。

三、实训收获通过本次实训,我们收获了以下几个方面的知识和技能:1. 加深了对计算机原理的理解通过对计算机组成原理的实际操作和指令执行过程的分析,我们对计算机的内部工作原理有了更加深入的了解,加深了对计算机原理的理解。

2. 掌握了操作系统和数据结构的实际应用通过操作系统和数据结构的实践实验,我们掌握了操作系统的基本功能和使用技巧,提高了我们的编程和算法设计能力。

3. 增强了团队协作和解决问题的能力在实训过程中,我们需要与同学们合作完成各种实践任务,在解决问题的过程中提高了我们的团队协作和问题解决能力。

计算机基础实验报告

计算机基础实验报告计算机基础实验报告引言:计算机科学作为一门重要的学科,为我们的现代社会带来了巨大的变革和进步。

而计算机基础实验则是我们学习计算机科学的重要环节之一。

本实验报告将介绍我在计算机基础实验中所学到的知识和经验,并总结实验的结果和收获。

实验一:计算机硬件组装与调试在这个实验中,我们学习了计算机硬件的基本组成和组装方法。

通过实际操作,我了解了主板、CPU、内存、硬盘等硬件设备的功能和相互连接方式。

同时,我们还学习了如何调试计算机硬件故障,提高了我们的问题解决能力。

实验二:操作系统安装与配置在这个实验中,我们学习了操作系统的安装和配置。

通过实际操作,我掌握了Windows和Linux操作系统的安装方法和步骤,并学会了对操作系统进行基本的配置和优化。

这不仅提高了我对操作系统的理解,还为我以后的计算机使用提供了便利。

实验三:计算机网络配置与管理在这个实验中,我们学习了计算机网络的基本概念和配置方法。

通过实际操作,我了解了网络的组成和工作原理,并学会了对局域网进行基本的配置和管理。

这对于我们理解互联网的工作原理和提高网络安全意识都具有重要意义。

实验四:数据库设计与管理在这个实验中,我们学习了数据库的设计和管理。

通过实际操作,我了解了数据库的基本概念和常用的数据库管理系统,如MySQL和Oracle。

同时,我们还学习了如何设计和优化数据库结构,提高数据库的性能和安全性。

实验五:程序设计与开发在这个实验中,我们学习了程序设计和开发的基本原理和方法。

通过实际操作,我学会了使用编程语言进行程序设计,并学习了常用的开发工具和技术,如IDE和版本控制系统。

这为我以后的软件开发工作奠定了基础。

实验六:计算机安全与防护在这个实验中,我们学习了计算机安全和防护的基本知识和方法。

通过实际操作,我了解了计算机系统的安全威胁和攻击方式,并学会了如何使用防火墙和杀毒软件等工具进行计算机安全防护。

这对于保护个人隐私和防止计算机病毒的侵害具有重要意义。

计算机基础实训报告(通用3篇)

计算机基础实训报告(通用3篇)计算机基础实训报告篇1经过短短一星期的计算机实训,我深深体会到电脑的神奇和奥妙;也意识到自己在计算机上还有许多不足。

老师布置了一些的作业给我们操练,在老师精心的指导下我已把Excel,word,outlook,powerpoint等操作的很好了!现在我们已步入大学,经过半年的在校学习,对电脑还只是初步的认识和理解,但在这学期期间,一直忙于理论知识的学习,没能有机会放开课本,真正切身感受计算机魅力,所以在实训之前,电脑对我们来说是比较抽象的,但通过这次实训,我们揭开了她神秘的面纱,离我们不再遥远!据我了解,大多数同学都以前接触过电脑,也有玩过一些游戏,却不懂操作一些对我们以后工作有用的系统。

对于我们所学的计算机知识渗透较少,之前都是老师操作为主。

此次实训就不同了,同学们都作了充分准备,在活动中同学们都提前来到教室上课,每位同学都认真的操作、练习;听着“嗒嗒”的打字声,心里真的不亦乐乎!和我们一同参与实训的还有姚远老师和滕晓焕老师,在实训中也分别给予了我们指导,并且做详细的讲解,这次实训活动十分成功,除了各位同学的充分准备,还要感谢学院和食品系的各位领导及专业老师,没有他们做出努力,给学生手操的平台。

通过这次实训,我们对电脑有了更深刻的认识,做二十一世纪现代人不但要有过硬的理论知识,良好的心理素质,健康的体魄,还要有超强的电脑操作能力,正所谓“秀才不出门,便知天下事”为一名食品专业学生来说,必须有较广的社交圈和开阔的知识面,所以要把电脑作为一个重点来抓!然而,在我参加培训的第一晚上,我就发现自己错了,此次的电脑培训与以前参加过的培训大相径庭。

以前的培训都是应付考试的,实用性不强,而且那时学的东西,在工作中用的不多,时间长了不用也就忘记了。

而这次培训的内容最显著的特点,就是实用性和工具性很强,都是平时工作中经常用到的。

参加培训的第一课时,我就专心致志地听讲,把学习内容与以前操作不规范或不熟练的地方进行对比,感觉学习效果很好,受益匪浅。

计算机基础实验报告(共3篇)

篇一:计算机基础实验报告(1)xx 实验报告课程名称计算机导论项目名称操作系统与工具软件学院专业无指导教师报告人学号实验时间提交时间一、实验目的与要求1.掌握windows或linux的基本操作;2.掌握文件管理、磁盘管理以及控制面板设置;3.熟悉汉字输入法以及金山打字软件的使用;4.了解windows注册表管理和常用工具软件的使用;5.学会自己提出问题,并得出解决问题的方法。

实验内容与方法1.了解windows的启动和关闭,桌面的组成,窗口的组成和操作,鼠标及其操作,菜单与对话框,应用程序的切换,任务栏和?开始?菜单。

2.了解?资源管理器?和?我的电脑?,懂得文件和文件夹的操作,会磁盘清理,格式化磁盘,会备份和系统还原以及虚拟内存的设置和控制面板的鼠标设置、系统日期和时间、桌面背景及屏幕保护的设置、会安装与卸载应用程序、多用户环境的设置、文件夹共享的设置、汉字输入法的设置。

3.了解安装汉字输入法,添加或删除汉字输入法,输入法的选择,输入法的快捷键设置以及智能abc输入法的使用和了解金山打字软件的启动及其窗口,打字教程,英文打字,拼音打字,速度测试,个人管理。

4.了解注册表基本结构,使用注册表,备份与还原注册表信息和会使用压缩软件、adobe acrobat、虚拟光驱。

电子图书浏览与制作工具。

三、实验步骤与过程一.1.windows的启动与关闭⑴windows的启动连接计算机的电源,打开电源,安装了windows的计算机就会自动启动,计算机将显示欢迎的界面,之后将看到windows的桌面。

⑵windows的关闭单击?开始?按钮打开?开始?菜单,在其中选择?关闭计算机?,在出现的对话框中单击选择?关闭?,系统将关闭。

2.桌面的组成:桌面上摆放了一些经常用到的或特别重要的文件夹和工具图标,使用鼠标双击想使用的应用程序即可打开相应的应用程序。

3.窗口的组成窗口的基本操作有打开与关闭窗口、调整窗口大小、移动窗口等操作步骤。

中国海洋大学计算机科学与技术系-实验报告(样本)

中国海洋大学信息科学与工程学院计算机科学与技术系实验报告姓名:年级:专业:计算机科学与技术科目:汇编语言题目:调试工具DEBUG的使用实验时间: 2013年月日实验成绩: 实验教师:一、实验目的:1.熟悉DEBUG的功能,运行并掌握其常用命令。

2.使用DEBUG,通过数据传送指令观察IBM-PC机各种寻址方式的区别。

二、实验环境(硬件或软件):在DOS或Windows的命令行窗口执行命令Debug.exe,进入Debug程序环境,熟悉Debug各个命令的用法,Windows 8版本没有Debug环境,需要配置虚拟机环境。

三、实验原理:1. DEBUG的加载及其常用命令(A、U、R、D、E、T、P、G、Q)的使用情况。

(注意:微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”。

)2.按照程序要求编写简单程序段.3.在Debug中输入简单的汇编程序片断,并调试运行,得出结果.四、实验内容(实验步骤或者程序编写):(1)用E命令键入机器语言程序和数据段的初值。

—E DS:000 2301 2500—E DS:006 2A 2A 2A (2A为*,是为便于查看数据段内容而设置)(2)用D命令检查数据段、代码段内容。

—D DS:0—D CS:100(3)用T命令逐条执行上述程序,注意观察每条指令执行后相应寄存器的变化。

(4)用U命令反汇编本程序。

—U 100 10A(5)用G命令运行程序。

3.自己试着写段程序:-A 100↙16C6:0100 DB‘1234567890‘↙16C6:010A CLD↙16C6:010B MOV SI,100↙16C6:010E MOV DI,200↙16C6:0111 MOV CX,A↙16C6:0114 REP MOVSB↙16C6:0116↙-G =10A 116↙;运行上述程序(起始地址10AH,结束地址116H)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国海洋大学计算机科学与技术系实验报告姓名:学号:专业:科目:计算机系统原理题目:Lab1的实验实验时间: 2019/11/09实验成绩: 35/35 实验教师:一、实验目的:1更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。

2.实验中使用有限类型和数量的运算操作实现一组给定功能的函数,在此过程中加深对数据二进制编码表示的了解3.熟悉linux基本操作命令,其中常用工具和程序开发环境4.完善bits.c的各个函数,实现其功能,并通过.btest的测试二、实验要求1.尽快熟悉linux基本操作命令,还有其中常用工具和程序开发环境2.除浮点数函数实现外,只能使用顺序程序结构,禁用if, do, while, for, switch等。

⏹有限操作类型,!~ & ^ | + << >> 各函数不一样⏹禁用(!=、==、&&、|| 等组合操作符)⏹常量值范围0~255⏹禁用强制类型转换⏹禁用整型外的任何其它数据类型⏹禁用定义和宏⏹不得使用函数⏹具体要求可参看bits.c各函数框架的注释⏹可以使用循环和条件控制;⏹可以使用整型和无符号整型常量及变量(取值不受[0,255]限制);⏹不使用任何浮点数据类型、操作及常量。

⏹可以使用int和unsigned两种整型数据⏹禁用浮点数据类型、struct、union或数组结构。

⏹浮点数函数均使用unsigned型数据表示浮点数据。

⏹float_abs等函数必须能处理全范围的变量值,包括(NaN)和infinity。

三、实验内容(所修改函数代码,功能以及重要代码的解释):主要操作内容:位操作函数; 补码运算函数; 浮点数表示函数/** lsbZero - set 0 to the least significant bit of x* Example: lsbZero(0x87654321) = 0x87654320* Legal ops: ! ~ & ^ | + << >>* Max ops: 5* Rating: 1*//*功能:将将整形x最后一位置零*/int lsbZero(int x) { //rightx >>= 1;x <<= 1;return x;}/** byteNot - bit-inversion to byte n from word x* Bytes numbered from 0 (LSB) to 3 (MSB)* Examples: getByteNot(0x12345678,1) = 0x1234A978* Legal ops: ! ~ & ^ | + << >>* Max ops: 6* Rating: 2*//*功能:将指定第n个(这里的顺序从后面数起)字节(8位)与1异或*/int byteNot(int x, int n) { //rightint y = 0xff;//先预定一个8位的11111111n <<= 3;//将n*8,为了后续字节的移动y <<= n;//将这8个1移动到n所指的字节x = x^y;return x;}/** byteXor - compare the nth byte of x and y, if it is same, return 0, if not, return 1* example: byteXor(0x12345678, 0x87654321, 1) = 1* byteXor(0x12345678, 0x87344321, 2) = 0* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 2*//*判断x与y第n个字节是否相同*/int byteXor(int x, int y, int n) { //rightn <<= 3;x >>= n;y >>= n;x = x&(0xff);y = y&(0xff);return !!(x^y);//这里的两个!!是为了让(x^y)的结果为0或1,而不是一个具体的数,例如:!!8 = 1}/** logicalAnd - x && y* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*//*实现逻辑与*/int logicalAnd(int x, int y) { //rightx = !x|!y;//只要x和y中有一个0,x就是1return !x;//为了符合要求取反}/** logicalOr - x || y* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*//*实现逻辑或*/int logicalOr(int x, int y) { //rightx = x | y;return !!x;//让x规范输出}/** rotateLeft - Rotate x to the left by n* Can assume that 0 <= n <= 31* Examples: rotateLeft(0x87654321,4) = 0x76543218* Legal ops: ~ & ^ | + << >> !* Max ops: 25* Rating: 3*//*将x的前n位移动到后面去*/int rotateLeft(int x, int n) { //rightint toZero = ~(((1<<31)>>31)<<n); //获得11.........000(32-n个1,n个0)x = ((x>>(32+(~n+1)))&toZero) + (x<<n);//(32+(~n+1))的意思是32-n; return x;}/** parityCheck - returns 1 if x contains an odd number of 1's* Examples: parityCheck(5) = 0, parityCheck(7) = 1* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 4*//*判断这个2进制数是否为奇数个1*/int parityCheck(int x) {/*这个方法的思想就是先让后16位和前16位来比较相同位置的1异或后会变成0也就是偶数个1会被削掉一部分然后保存到前16位(后面的16位不用管了)然后用前16位中的后8位与前8位比较以此类推*/int y = x<<16;y = y^x;y = y^(y<<8);y = y^(y<<4);y = y^(y<<2);y = y^(y<<1);y >>= 31;y = y&1;return y;}/** mul2OK - Determine if can compute 2*x without overflow* Examples: mul2OK(0x30000000) = 1* mul2OK(0x40000000) = 0** Legal ops: ~ & ^ | + << >>* Max ops: 20* Rating: 2*//*判断这个2进制数乘以2后会不会溢出*/int mul2OK(int x) { //right/*这个方法的思想就是发现了一个规律:只要这个2进制数前两位不一样就会溢出*/int f = ~((1<<31)>>30);int a = (x >> 31)&f;//the firstint b = (x >> 30)&f;//the secondint c = (~(a^b)&f);return c;}/** mult3div2 - multiplies by 3/2 rounding toward 0,* Should exactly duplicate effect of C expression (x*3/2),* including overflow behavior.* Examples: mult3div2(11) = 16* mult3div2(-9) = -13* mult3div2(1073741824) = -536870912(overflow)* Legal ops: ! ~ & ^ | + << >>* Max ops: 12* Rating: 2*//*乘以2/3*/int mult3div2(int x) { //right/*注意,这里的顺序不能变,只能先乘以3,再除以2,因为关系到溢出的判断*/ x = (x << 1) + x;//乘以3等价于,这个数乘以2加上他本身x += (x >> 31)&(~((1<<31)>>30));//如果x是负数,则x在除以2时要加上一个偏移量x >>= 1;return x;}/** subOK - Determine if can compute x-y without overflow* Example: subOK(0x80000000,0x80000000) = 1,* subOK(0x80000000,0x70000000) = 0,* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*//*判断x-y后会不会溢出*/int subOK(int x, int y) {int z = x + ~y + 1;//x - yint f = ~((1<<31)>>30);//获取数0000 (001)//获取他们的符号位x = (x>>31)&f;y = (y>>31)&f;z = (z>>31)&f;//发现规律,x与y和z的符号位不同时会溢出//意思就是正数减去负数为负数就是溢出//负数减去正数为正数就是溢出return !((x^y)&(x^z));}/** absVal - absolute value of x* Example: absVal(-1) = 1.* You may assume -TMax <= x <= TMax* Legal ops: ! ~ & ^ | + << >>* Max ops: 10* Rating: 4*//*取x的绝对值*/int absVal(int x) { //rightint y = x >> 31;//符号位,得到的y只能是全为1或全为0。

相关文档
最新文档