1、C++编程概述

文章目录

  • 一、基本概念
  • 二、数据的表示及运算
    • 计算机中数据表示
    • 进制间相互转化
    • 二进制计算规则
  • 三、计算机数据的存储单位
  • 四、机器数和码制
  • 五、机器数运算
    • 机器数的加减运算
    • 机器数的乘除运算

面向对象编程语言把事物看成是具有属性和行为的对象,然后通过抽象找出属于同一类的事物的属性和行为,就形成了类。通过类得继承和多态可以很好的实现代码复用,提高软件开发效率。
结构化程序设计方法,它的设计思路是,自上而下,逐步细化,将程序结构按功能分成多个模块,每个模块可能又会分成多个模块,这样就形成了一个模块的树状结构,各个模块间的关系尽可能简单,功能上相对独立。每个模块都是由顺序、选择和循环三种基本结构组成。这种方法就将一个复杂的程序设计问题分成很多简单细化的子问题,更便于开发维护。但是这种方法的缺点是数据和处理数据的方法各自独立,如果数据结构改变,所有相关的方法都要改变。
面对对象设计方法,它将数据和方法放到一个整体里,这个整体就叫对象,同类型对象抽象成类,类中大部分数据只能用本类中的方法处理,类通过简单的外部接口与外界发生关系,而内部的各种关系对外部是透明的。

一、基本概念

  1. 对象
    每个对象都是描述客观存在事物的一个实体,都是由数据和方法(也可以叫属性和行为)构成。属性是描述事物特征的数据,行为描述对对象属性的一些操作。

  2. 类是具有相同属性和行为的一些对象的集合,它为所有属于这个类的对象提供抽象的描述,比如麻雀和杜鹃都可以看作是对象,而鸟就可以看作类。
  3. 封装
    封装就是把对象的所有属性和行为结合成一个独立的单位,对外隐藏对象的内部细节,只保留有几个接口与外界联系。
  4. 继承
    一个类(叫做子类)可以通过继承另一个类(叫做父类)来拥有另一个类的所有属性和行为。比如车和汽车,汽车从车继承,车的所有属性和行为都继承到了汽车上。
  5. 多态性
    多态性就是说父类中的属性和行为被子类继承后,子类可以有自己不同于父类的属性或行为。比如定义一个类“动物”,它具有“吃”这个行为,但是具体怎么吃吃什么,不知道,因为不知道到底是个什么“动物”,如果从这个类继承出子类“羊”和“老虎”,“吃”就成了具体的行为,怎么吃吃什么就都知道了。

二、数据的表示及运算

计算机中数据表示

计算机内部,数值、文字、声音、图形图像等各种信息都必须经过数字化编码后才能被传送、存储和处理。编码就是采用少量的基本符号,选用一定的组合原则,来表示大量复杂多样的信息,
常用计数制

进制间相互转化

  1. 十进制与二进制相互转化
    将十进制转换魏二进制时,整数部分和小数部分分别转换,然后合并。十进制整数转换为二进制整数的方法是“除2取余”,先出低位最后得高位;十进制小数转换为二进制小数的方法是“乘2取整”,先得高位再得低位。
    如: 175.7187 5 10 175.71875_{10} 175.7187510转换为二进制为 10101111.1011 1 2 10101111.10111_2 10101111.101112
    在熟悉2的整数幂次情况下,可将十进制数写成按二进制数权的大小展开的多项式,按权值从高到低依次取各项的系数就可得到相应的二进制数。
    175.7187 5 10 = 2 7 + 2 7 + 2 5 + 2 3 + 2 2 + 2 1 + 2 0 + 2 − 1 + 2 − 3 + 2 − 4 = 10101111.1011 1 2 175.71875_{10}=2^7+ 2^7+2^5+2^3+2^2+2^1+2^0+2^{-1}+2^{-3}+2^{-4}=10101111.10111_2 175.7187510=27+27+25+23+22+21+20+21+23+24=10101111.101112
    二进制转换为十进制的方法:将二进制数的每一位数乘以它的权,然后相加,即可得到相对应的十进制。
  2. 八进制计数法与十进制、二进制计数法的相互转换
    十进制转八进制:对于十进制整数部分采用“除8取余”的方法转换为八进制整数;对于十进制小数则采用“乘8取整”的方法转换为八进制小数。
    二进制数据转换成八进制数的方法是:从小数点起,每三位二进制位分成一组(不足3位时,在小数点左边时左边补0,在小数点右边时右边补0),然后写出每一组的等值八进制数。顺序排列起来就得到所要求的八进制数。
    八进制转二进制:将一位8进制用三位二进制数表示,就可以直接将八进制数转换成二进制。
    二进制、八进制和hi十六进制之间的对应关系
  3. 十六进制计数法与十进制、二进制计数法的相互转换
    十进制转十六进制:十进制数的整数部分“除16取余”,十进制数的小数部分“乘16取整”。
    二进制转十六进制:4位二进制对应1位16进制。
    10101111.1011 1 2 = A F . B 8 16 10101111.10111_2=AF.B8_{16} 10101111.101112=AF.B816

二进制计算规则

  • 加法:二进制加法的进位规则是“逢二进一”
  • 减法:二进制减法的借位规则是“借一当二”
  • 乘法
    0 × 0 = 0 0\times0=0 0×0=0 1 × 0 = 0 1\times0=0 1×0=0 0 × 1 = 0 0\times1=0 0×1=0 1 × 1 = 1 1\times1=1 1×1=1

三、计算机数据的存储单位


  1. 这是数据的最小单位,表示一位二进制数据。
  2. 字节
    由八位二进制数据组成。字节是数据存储中最常用的基本单位。我们常说内存有2G,这里的单位就是字节。1K等于1024字节,1M等于1024K,1G等于1024M。

  3. 位的组合,作为一个独立的信息单位处理。取决于机器的类型、字长及使用者的要求。常用的固定字长有8位、16位、32位等。
  4. 机器字长
    讨论信息单位时,有个与机器硬件指标有关的单位就是机器字长,一般指参加运算的寄存器所含有的二进制数的位数,它代表了机器的精度,如32位、64位等。就是我们常说的32位机器还是64位机器。

四、机器数和码制

对于带符号数,机器数的最高位是表示正、负的符号位,其余则表示数值。若约定小数点的位置在机器数的最低数值位之后,则是纯整数;若小数点的位置在机器数的最高数值位之前(符号位之后),则是纯小数。无符号数是指全部二进制位均代表数值,没有符号位。
带符号的机器数可以采用原码、反码和补码、移码等不同得编码方式。

  1. 原码表示
    数值X得原码记为 [ X ] 原 [X]_原 [X]如果机器字长为n,则最高位是符号位,0表示正好,1表示负号,其余的n-1位表示数值的绝对值。数值零的原码表示有两种形式: [ + 0 ] 原 = 00000000 , [ − 0 ] 原 = 10000000 [+0]_原=00000000,[-0]_原=10000000 [+0]=00000000[0]=10000000
  2. 反码表示
    数值X的反码记为 [ X ] 反 [X]_反 [X]如果机器字长为n,则最高位是符号位,0表示正好,1表示负号,其余的n-1位表示数值。
    正数的反码与原码相同,负数的反码则是其绝对值按位求反。
    数值零的反码表示有两种形式: [ + 0 ] 反 = 00000000 , [ − 0 ] 反 = 11111111 [+0]_反=00000000,[-0]_反=11111111 [+0]=00000000[0]=11111111
  3. 补码表示
    数值X的补码记为 [ X ] 补 [X]_补 [X]如果机器字长为n,则最高位是符号位,0表示正好,1表示负号,其余的n-1位表示数值。
    正数的补码与其反码和原码相同,负数的补码则等于其反码的末尾加1。
    在补码表示中,0有唯一的编码: [ + 0 ] 补 = 00000000 , [ − 0 ] 补 = 00000000 [+0]_补=00000000,[-0]_补=00000000 [+0]=00000000[0]=00000000
    相对于原码和反码表示,n位补码表示法有一个例外,当符号位为1而数值位全部为0时,它表示整数 2 n − 1 2^{n-1} 2n1,即此时符号位的1即表示负数又表示数值。
  4. 移码表示
    移码表示法是在数X上增加一个偏移量来定义的,常用于表示浮点数中的阶码。是基于补码来进行计算。
    如果机器字长为n,在偏移量为2^(n-1)时,只要将补码的符号位取反即可获得相应的移码表示。

五、机器数运算

机器数的加减运算

在计算机中,可以只设置加法器,而将减法器运算转换为加法运算来实现。

  1. 原码加减法
    先确定符号位,符号位相同则加数值为进行运算;符号位不同则比较数值位绝对值,取绝对值大的符号位,然后用绝对值大的减去绝对值小的。
    在计算机中很少使用原码计算。
  2. 补码加减法
    补码加法: [ X + Y ] 补 = [ X ] 补 + [ Y ] 补 [X+Y]_补=[X]_补+[Y]_补 [X+Y]=[X]+[Y]
    补码的减法:差的补码等于被减数的补码加上减数取负后的补码,即: [ X − Y ] 补 = [ X ] 补 + [ − Y ] 补 [X-Y]_补=[X]_补+[-Y]_补 [XY]=[X]+[Y]
    由[X]_补求[-X]_补的方法是:[X]_补的各位取反(包括符号位),末尾加1。

补码加减运算的规则如下:

  • 参加运算的操作数用补码表示。
  • 符号位参加运算。
  • 若进行相加运算,则两个数的补码直接相加;若进行相减运算,则将减数连同其符号位一起变反后加1后于被减数相加。
  • 运算结果用补码表示。

机器数的乘除运算

  1. 纯软件方案。
  2. 在现有的能够完成加减运算的算数逻辑单元ALU的基础上,通过增加少量的实现左、右移动的逻辑电路,来实现乘除运算。
  3. 设置专门的硬件阵列乘法器(或除法器),完成乘(除)法运算。

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

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

相关文章

共筑信创新生态:DolphinDB 与移动云 BC-Linux 完成兼容互认

近日,DolphinDB 数据库软件 V2.0 与中国移动通信集团公司的移动云天元操作系统 BC-Linux 完成兼容性适配认证。经过双方共同严格测试,DolphinDB 性能及稳定性等各项指标表现优异,满足功能及兼容性测试要求。 此次 DolphinDB 成功通过移动云 B…

AWS 高防和阿里云高防深度对比

随着网络攻击的不断增加,企业对于网络安全的需求也越来越高。在这种情况下,高防护服务成为了企业网络安全的重要组成部分。AWS和阿里云作为全球领先的云计算服务提供商,都提供了高防护服务,但它们之间存在着一些差异。我们九河云一…

如何让Google快速收录?

要让Google快速收录你的网站,可以考虑使用GSI服务,这是一种专门设计来加速网站被Google搜索引擎收录的服务,下面详细解释GSI服务的基本原理和具体好处: GSI服务通过一种名为GPC爬虫池的系统实现,这个系统是基于对Goog…

ABAP Json解析案例

ABAP解析返回的JSON 案例 DATA:LTOKEN TYPE STRING.DATA: LL_LINES(10),"行数LL_TABIX(10),"循环标号LL_PECNT TYPE P LENGTH 6 DECIMALS 2, "百分比LL_PECET(6),"百分数LL_TEXT(40)."消息CLEAR: LL_LINES,LL_TABIX,LL_PECNT,LL_PECET,LL_TEXT.* …

GPT-4o: 未来的智能助手

GPT-4o: 未来的智能助手 在这个信息爆炸的时代,人工智能(AI)已经成为我们生活中不可或缺的一部分。作为OpenAI最新推出的语言模型,GPT-4o不仅继承了前几代模型的优点,还在多个方面进行了显著的提升。本文将带你深入了解…

Win11有些exe双击后无反应的解决办法

现象 双击某些exe文件之后,小圆圈转了两下之后就消失,然后没任何反应。用回车反复启动也是一样的现象。 由于截图没法截图到鼠标,所以没法放出截图。 我电脑出现上述现象的软件有: 1.纸飞机调试助手 2.SOC Programming Tool 对…

【python】numpy库计算矩阵特征值和特征向量

目录 0.环境 1.前提 2.全部代码 0.环境 windows eclipse python 1.前提 我的邻接矩阵是固定的,11*11 2.全部代码 要将邻接矩阵使用numpy赋值 #计算矩阵特征值 import numpy as np A np.array([[0,1,1,1,1,1,1,1,1,1,1], [1,0,0,0,0,0,0,0,0,0,0], [1,0,0,0…

虹科Pico汽车示波器 | 免拆诊断案例 | 2010 款北京现代ix35车挡位偶尔锁定在4挡

故障现象 一辆2010款北京现代ix35车,搭载G4KD发动机和6速自动变速器,累计行驶里程约为23.6万km。该车行驶中急加速时,挡位偶尔锁定在4挡,同时发动机故障灯异常点亮。 故障诊断 该车自动变速器控制模块(TCM&#xff0…

怎么更改图片格式?图片在线转格式的使用方法

现在很多的平台在上传图片的时候,都会有规定要求的大小、格式、尺寸,只有符合要求的图片才可以正常上传。在网上传图时想要快速的修改图片格式,比较简单的一个方法就是在使用在线图片格式转换的工具就能够快速处理,下面将图片转格…

基于TAE的数字钥匙自动化测试解决方案

方案概述 在汽车发展和用户需求的推动下,汽车钥匙开始从传统的机械钥匙向数字化、智能化方向发展。目前常见的数字钥匙集成了蓝牙、NFC、UWB等技术实现了移动设备与车端的通信,可以帮助用户便捷的实现车辆功能控制。随着数字钥匙的广泛应用,相…

【机器学习】基于tensorflow实现你的第一个DNN网络

博客导读: 《AI—工程篇》 AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效 AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署 AI智能体研发之路-工程篇(三&am…

香港优才计划申请时间要多久?各流程申请周期规划,再晚就来不及了!

香港优才计划申请时间要多久?各流程申请周期规划,再晚就来不及了! 2024年是香港优才计划不限配额的最后一年,明年政策如何变化还未可知,但如果明年又设置限额了,那么今年最后的机会一定要抓住了。 在这里…

LSTM长短时记忆网络:推导与实现(pytorch)

LSTM长短时记忆网络:推导与实现(pytorch) 背景推导遗忘门输入门输出门 LSTM的改进:GRU实现 背景 人类不会每秒钟都从头开始思考。当你阅读这篇文章时,你会根据你对以前单词的理解来理解每个单词。你不会把所有东西都扔…

STM32-12-OLED模块

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 文章目录 1. OLED显示屏介绍2. OLED驱动原理3. OLED驱动芯片简介4…

v4l2抓取rv1126图像

0.准备工作 本文是基于正点原子的rv1126开发板使用mx415摄像头对不同节点的图像进行抓取 1.数据流向 图1 mx415采集到的数据为原始的拜尔格式(也就是raw格式),我们需要通过isp进行图像的调节才符合视觉,其中isp和ispp是两个处理的…

【大数据】Hadoop 2.X和1.X升级优化对比

目录 1.前言 2.hadoop 1.X的缺点和优化方向 3.解决NameNode的局限性 3.1.Hadoop HA 3.2.Haddop federation 4.yarn 5.周边组件 1.前言 本文是作者大数据系列中的一文,专栏地址: https://blog.csdn.net/joker_zjn/category_12631789.html?spm10…

网络侦察技术

网络侦察技术 收集的信息网络侦察步骤搜索引擎检索命令bing搜索引擎Baidu搜索引擎Shodan钟馗之眼(zoomeye) whois数据库:信息宝库查询注册资料 域名系统网络拓扑社交网络跨域拓展攻击 其它侦察手段社会工程学社会工程学常见形式Web网站查询 其它非技术侦察手段总结网…

GDPU 操作系统 天码行空13

文章目录 ❌ TODO:本文仅供参考,极有可能有误1.生产者消费者问题(信号量)💖 ProducerConsumerExample.java🏆 运行结果 💖 ProducerConsumerSelectiveExample.java🏆 运行结果 2.实现…

将四种算法的预测结果绘制在一张图中

​ 声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 之前的一期推文中,我们推出了…

TREK高压发生器维修高压电源615-3-L-JX 615-3

美国TREK高压电源维修故障分析应注意两点: 故障分析检测和故障硬件更换,由高压电源故障和工作表现初步判断故障的类型和哪些硬件出了问题,初步判断缩小检测范围,通过排除法和更替新配件准确找到故障硬件。维修过程需要对trek电源维…