- 博客(36)
- 收藏
- 关注
原创 JetBrains Clion Idea 等缓存文件和配置文件迁移
文件夹用于存储JetBrains所有应用的配置文件夹和缓存文件夹。由于插件文件夹和日志文件夹分别在配置文件夹和缓存文件夹下面,因此。修改如下【插件文件夹和日志文件夹直接将#删掉取消注释即可】默认路径:默认在配置文件目录下的plugins文件夹。默认路径:默认在配置文件目录下的log文件夹。例如:我现在想把文件都迁移到D盘中。里面的所有文件都复制到。里面的所有文件都复制到。
2024-10-28 15:55:23 266
原创 ‘begin_code.h‘ file not found 问题解决办法
在Google搜索未果后,考虑到对于头文件找不到问题,可以通过-I 增加头文件搜索路径来实现,因此查找了SDL2库中。指定头文件搜索路径。
2024-02-04 12:45:45 284 1
原创 [JavaScript]使用opencv.js实现基于傅里叶变换的频域水印(隐水印)
通过了解频域水印的相关知识,我理解了频域水印就是先将图片进行傅里叶变换,得到频域图,然后将水印文字加到频域图中,在将频域图转换回去得到加了频域水印的图片。
2022-12-15 08:00:00 2714 11
原创 计算机组织与结构【17 输入输出】
外设提供了外部环境与计算机系统之间的数据交换I/O模块属于计算机系统,但外设是不属于的,通过I/O模块这一中介来沟通计算机系统和其他的各种外设状态信息是指外设的状态,如打印机会有多种不同的状态转换器是负责将计算机内的01信号转换成外部的如音频信号等,同时也要把外部的信号如音频信号转换成内部的01信号控制线传输的是对I/O模块的控制信息而上面的状态/控制模块传输的是CPU对外设的控制指令,如打印等,同时由于CPU传输给外设的控制信息和外设传输回来的状态信息是不会同时出现的,因此可以复用一个寄存器总线上的数据都
2022-07-04 14:19:21 351
原创 计算机组织与结构【16 控制器】
左边的图中粗的箭头表示控制信息,细的箭头表示数据的流动两种的划分并不严格,有些寄存器具有两种特点条件码寄存器不是必须的,有些机器没有条件码寄存器太多的寄存器不能显著减少存储器的访问:指的是当寄存器的数量多于一定数目时,对存储器访问的减少作用很小了,但带来了成本的上升,因此是不值得的子程序的调用会自动保存用户可见寄存器,这样子程序运行时就可以随意使用用户可见寄存器,而不用担心会对调用者的数据产生影响(即可以理解是如call指令包括了对寄存器保存的指令)但在子程序调用之外,想要保存相关的寄存器内容,就是程序员的
2022-07-04 14:18:43 332
原创 计算机组织与结构【15 指令周期和流水线】
只有机器关闭,发生错误,遇到停止计算机的指令时,程序才会停止。只要计算机开着,即使不使用,也是持续在执行指令的是指比如要取一个字符串,那么一次可能无法全部得到,那么就必须要分多次,多次的计算源操作地址,取字符串,计算目的操作数地址,存字符串。但这是一条指令的功能,所以直到全部取完后,才进行下一条指令的地址计算在这条指令执行完,下一条指令未开始的中间进行中断的判断(这时候PC已经是下一条指令的地址了)把间接地址的读取看作一个额外的指令子周期,相比于直接寻址,多了存储器的访问,所以单独作为一个子周期如果是同步的
2022-07-04 14:17:56 464
原创 计算机组织与结构【14 指令系统】
地址A指向的不一定是操作数本身,而可能是一个地址,这个地址才指向操作数,那么这个地址就叫做有效地址EA地址字段存放的就是操作数,操作数以立即数的方式给出地址字段是有效地址,可以直接获取操作数的有效地址EA,操作数始终可以表示为(EA)指的是虽然采用了间接寻址,虽然A的长度会限制放EA的范围(A长度可能很小,涵盖的地址空间小)但这未必是一件坏事寄存器数量少,所以需要的编号长度小,寄存器里面存放了操作数,所以EA=R当一个数/变量被多次使用时,数据存放在寄存器才有意义,因为寄存器速度快,如果只是从主存中取一个数
2022-07-04 14:17:24 212
原创 计算机组织与结构【13 总线】
总线包括芯片内部总线、系统总线、通信总线系统总线在不同位置不同场景下会有不同的含义,课程中主要把系统总线作为一个通用的概念,而不是特指某条总线地址不一定只能一次传输,事实上有时候是可以分成两次来传输地址的,这样就能扩展寻址空间,即寻址空间不是由地址线的宽度来决定的当总线被使用时,其他设备不能抢占要在优先级和公平性之间取得平衡仲裁器是硬件设备,集中处理总线使用权允许信号从仲裁器下发,按优先级从高到底传递(串行),从而高优先级的设备如果要使用总线,则可以截取允许信号繁忙线与各个设备之间是双向箭头,因为各个设备要
2022-07-04 14:16:40 367
原创 计算机组织与结构【12 虚拟存储器】
系统软件并不是操作系统实用程序一般是指程序的创建,文件管理等当然操作系统本身也是一个程序,自身还是需要占用资源的,同时又在分配计算机的资源通过仅将当前需要的页调用主存,其他的页暂时放在外存上,可以让主存中尽可能多的包含更多的任务,提高CPU的利用率分区方式:(系统区占用的大小在不同分区方式中都是一样的,不同分区方式是针对用户分区的)利用页可以使得一个任务的不同页不需要用连续的页框来存储,注意这里是把一个任务的所有部分都分成页装进来(还不是下面的请求分页的思想)任务越来越多,对内存的需求越来越大基本思想:优点
2022-07-04 14:15:37 781
原创 计算机组织与结构【11 冗余磁盘阵列(RAID)】
目的:逻辑上是一个磁盘,物理上是多个的,同时数据是分布在多个物理磁盘上的,这样才能多个磁盘并行工作来提高效率条带化即把一个磁盘/一个组(如后面的10,01,50)分散成多个条带放到不同的磁盘上优点:缺点:深色的是冗余盘,简单地把原来的数据进行了拷贝优点:缺点:只用于关键数据,重要数据的保存RAID 01是先进行条带化,再备份分组,如果disk0坏了,那么整个组都不能用了,即disk2和disk1不能联动RAID 10是先进行备份分组,再进行条带化,这样一组中坏了一个也不要紧,比如disk0坏了,还可以,di
2022-06-30 10:09:15 960
原创 计算机组织与结构【10 外部存储器】
外存不在计算机系统的内部,不在冯诺依曼架构中用于存储不常用,数据量大的数据,外存是非易失的玻璃基材更具优势其中,能够支持磁头有较低的飞行高度。飞行高度是指磁头离盘片的高度,飞行高度越低,能分辨的范围就越小,那么磁盘上就能把更小的范围作为一个单元,这样存储的信息就能更多飞行高度取决于基材的性质,飞行高度越低,就要求基材越平整(否则就可能撞到),同时要求基材受外界环境因素如气温的影响要小,如温度变化时形变小基材的圆片是软的那么就是软盘,硬的就是硬盘软盘的存储数据量为1.44MB,常用的就是容量为1.44MB的3
2022-06-30 10:08:25 427
原创 计算机组织与结构【9 高速缓冲存储器(Cache)】
大部分是集成在CPU内部的,存放的还是主存内的信息,是主存内部分信息的副本如果不在cache中,那么会将包含这个字的固定大小的块读入cache,然后再从cache中把这个字传给CPUcache中除了要存内容,还得存这个内容的位置,因为CPU是通过位置来访问主存中的内容的,而不关心其中的内容。cache不是存放了完整的位置,而是通过tags标记来对应内容在内存中的位置如果大部分时间都是未命中,那么使用cache后反而时间会更慢,而事实上cache很好的处理了内存墙问题,因此大部分情况应当是命中的这是由于程序访
2022-06-30 10:07:35 413
原创 计算机组织与结构【8 内部存储器]
原来是32位机器,那么内存一般是4GB,因为232次方就是4GB,再多插内存条也没有用,因为地址最多232个,因此最多就只能区分出这么多的单元就相当于房间数不能增加了,如果想要增大,那么只能增加房间里可以住的人数,即提高寻址能力Q:每个计算机所能访问的地址有限?n长01串决定了2n个地址,由计算机的设计决定的,不由总线(地址线)决定。eg. 16位的线可以传2次表示32位地址一个位元是一个bit,有两种状态,用来代表0和1,至少要能被写入一次,否则不存储信息是没用的早期的存储器是由磁芯制作的,其原理为:将磁
2022-06-30 10:05:57 371
原创 计算机组织与结构【7 二进制编码的十进制数运算】
NCBD码用于解决精度和范围之间的矛盾,但代价是数字位数过多对发生10进位的要补上6,如1010为十进制的10,补上0110,就利用16进制的进位实现了十进制的进位对于红色1,是加法本身已经超过16,发生了进位到前面一位,同样要加6,补上因为进位而丢失的6即发生了16进制的进位或者值超过9,那么都需要进行补6操作(其中发生16进制的进位,会出现上面红色的1,这时候补6,一定不会再发生进位.值超过9,不会出现红色的1,但补6后仍然会发生16进制的进位,因此还是会产生红色的1,即两种情况都会进一位到高位)如果要
2022-06-30 10:04:36 282
原创 计算机组织与结构【6 浮点数运算】
这里是原码乘法,因此右移补0,注意原码乘法中符号位不参与运算,而是通过异或得到结果的符号位…(img-Adrw6kea-1656554599872)]
2022-06-30 10:03:53 179
原创 计算机组织与结构【5 整数运算】
异或门是不能多个一起输入的,只能两两。a⊕b = (¬a ∧ b) ∨ (a ∧¬b),由此推断,非门的门延迟也为1ty而与和或则可以多个一起输入,因为如或门,只要有一个1 ,那么结果就是1,与门,只要有一个0,那么结果都是0之所以s=x⊕y⊕c,把x和y先做异或,是为了节省时间,因为c需要由前面的数据得到,如上,Cn的延迟是2n ty,因此可以提前把xn⊕yn计算好,等Cn-1计算好后再和Cn-1异或,因此Sn的延迟为2(n-1)+3=2n+1(但第一和第二位除外,它们的延迟都是6,因为得到C1为2,而此
2022-06-30 10:03:14 937
原创 计算机组织与结构【4 数据校验码】
以存储为例:注意,C’'不是和C去比较,因为既然D有可能出现差错变成D’,那么与之相应的校验码C也可能差错,因此,取出来的不是C,而是C‘,是将用D’生成的C‘’去和取出来的C‘比较一旦D存进存储器/网络,那么原来的D就消失了,取出来的就是D’。(如果能保证存进去和取出来的是一样的,那么也就不存在纠错,事实上,这是无法保证的)奇校验码:如果有奇数个1,那么C=0,否则为1偶校验码:如果有偶数个1,那么C=0,否则为1(理解:把原来的数据和这个校验码拼在一起时应当还是和校验码名字中的奇偶一致,所以奇校验码当1
2022-06-30 10:02:01 283
原创 计算机组织与结构【3 数据的机器级表示】
编码:用少量简单的基本符号对复杂多样的数据进行一定规律的组合。采用二进制的原因:用离散有限的数据去表示连续无限的数据,必然会产生偏差对于无符号整数不存在各种码的问题。各种码是用来解决如何表示带符号数的补码表示的数,不必关心其符号而可以直接相加,即对应机器不关心数据到底是无符号数还是带符号数补码的最高位符号位,如果是0那么和无符号一样,如果是1,那么就需要-2n-1,才是真正的值补码移码都只有一个0,而原码和反码中有两个0当移码的偏置常数为2n-1时,移码和补码仅第一位不同精度和范围的大小是相互矛盾的,因为k
2022-06-30 10:00:32 148
原创 COA计算机组织与结构【2 计算机的顶层视图】
Github主页 CSDN主页利用系统总线把各个部分连接起来数据和指令存储在一起,存储器只需要按位置寻址,而无需去考虑其中的数据类型如I/O设备可以使得程序中断,因此CPU可以大胆去做其他的事情,因为I/O设备可以使得其他事情中断,从而继续处理待I/O输入后才发生的事情(如add),这样可以增大CPU的利用率,避免了CPU在等待I/O的过程中空闲为什么要禁止中断?内存(主存)。内存又分为随机读写存储器(RAM)和只读存储器(ROM)。前者主要用于大容量内存储器和调整缓冲存储器;后者用于存放专用的固定程序,
2022-06-30 09:57:26 464
原创 计算机网络-自顶向下方法-笔记【第6章-链路层和局域网】
学习的课程及图片来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程一般网卡实现了链路层和物理层的功能,它们是紧密捆绑的标题并不是说广域网没有链路层,而是因为广域网的链路层相比于局域网很简单点到点的链路是指两个路由器之间有链路相连,A 通过这条链路就是发给 B,不可能到其他地方去,就是封装和解封装的过程,因此比较简单,同理 B 就是发给 A。一般用于广域网,如海底电缆、拨号接入【家里面的 ADSL 连接到运营商的 modem 池也是点
2022-06-26 15:38:54 371
原创 计算机网络-自顶向下方法-笔记【第5章-网络层-控制平面】
学习的课程及图片来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程路由可以看作是子网到子网的路由【因此就是找到路由器到其他路由器的较好路径(到了这个路由器就到了这个子网)】,而不是主机到主机的路由,因为可以想象 IPv4 那么 40 亿多个主机,要确定其中两个主机的最佳路由路径,很困难。事实上,对于不在一个子网的主机的第一跳一定是发送给这个子网的网关,最后一跳一定是由目标子网的网关发送给目标主机汇集树:sink tree 这个节点到
2022-06-26 15:38:16 290
原创 计算机网络-自顶向下方法-笔记【第4章-网络层-数据平面】
学习的课程及图片来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程转发——数据平面,决定从哪个端口入,从哪个端口出,是局部功能路由——控制平面,决定分组该怎么走,是全局功能转发和路由分别有传统方式的 SDN 方式,因此共有四种组合传统方式是数据平面和控制平面强耦合在一起,在一个路由器上一起实现,并且控制平面的路由表是分布式地在不同的路由器各自计算的【因此要修改非常难】传统方式:控制平面算出路由表,数据平面根据路由表和分组的目标 IP
2022-06-26 15:37:29 264
原创 计算机网络-自顶向下方法-笔记【第3章-传输层】
学习的课程及图片来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程传输层加强了网络层的服务,但有些服务是可以加强的,有些服务是不能加强的,如延时和带宽是不能加强的,取决于网络层复用/解复用技术:将多条运输连接上的数据汇集到一条网络连接上传输。本来逻辑上是有多个进程之间的通讯线路的,但通过复用(标识两者之间)只需要一条线路即可,在目标端对所有的信息解复用,分发给不同的应用进程仅仅在IP上增加了复用和解复用功能事务性:一次往返就结束要在
2022-06-26 15:36:49 879
原创 计算机网络-自顶向下方法-笔记【第2章-应用层】
学习的课程及图片来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程应用层的协议是最多的网络应用在端系统中部署即时通讯,如QQ等客户端进程是主动的,服务器进程是被动的P2P的会话中也有C和S之分应用进程需要解决:标识(将自己和其他应用进程区分开)和寻址(让对方能够找到自己)层间服务的地点(SAP)和形式(原语)要标识和寻址一个应用进程,需要3个要素:主机IP,使用TCP还是UDP,TCP/UDP的端口号本质上是由端口号来区分不同的应用
2022-06-26 15:36:10 553
原创 计算机网络-自顶向下方法-笔记【第1章-概述】
学习的课程及图片来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程互联网仅仅是网络的一种(是最为广泛的,有上亿的设备连接到互联网),还有其他的如银行的专用网络、军用的专用网络等计算机网络中互联网就是多个网络通过网络互联设备连接起来的巨型的网络hosts = end systems通信链路的传输速率即带宽以bps作为单位IETF(因特网工程任务组(Internet Engineering Task Force, IETF ))制定的R
2022-06-26 15:35:30 331
原创 计算机网络-自顶向下方法-笔记【第0章】
学习的课程及图片来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程功能和服务:功能是具备的能力,服务是功能的体现,每一层的功能都通过向上层提供的接口来提供服务,当然本层的功能需要调用下层的接口才能实现。即功能的涵盖面更大,比如一个设备有很强大的功能,但是不能被其他设备使用,那么就没有提供服务可靠性:不出错、不乱序、不重复、不丢失有些应用对可靠性要求非常高,因此是基于TCP的协议。而有些实时的应用对可靠性要求不高,但是对实时性要求非常
2022-06-26 15:32:21 596
原创 std::remove_if 用法、源码、问题详解
参数返回值remove_if(begin,end,op); 前两个参数:表示迭代的起始位置和这个起始位置所对应的停止位置【迭代器】。最后一个参数:传入一个回调函数,如果回调函数返回为真,则将当前所指向的元素移到尾部。返回值:被移动到某个区域的首个目标元素 iterator,将此删除即实现了将要删除的元素删除的目的头文件#include <algorithm>原理源码此函数无法删除元素,因为使用的是迭代器,不能删除元素,只能把要删除的元素移到容器末尾【不一定,如果有多个目标元
2022-05-24 19:53:20 3220
原创 C++隐式转换和显式转换 | explicit | static_cast、dynamic_cast、const_cast、reinterpret_cast的作用
参考:C++类型转换:隐式转换和显式转换隐式转换当一个值拷贝给另一个兼容类型的值时,隐式转换会自动进行。所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为。隐式转换类型基本数据类型:基本数据类型的转换以取值范围的作为转换基础(保证精度不丢失)。隐式转换发生在从小->大的转换中。比如从char转换为int。从int->long。【当然大到小的转换也可以,但编译器会 waring 窄转换】// 小到大int a = 1;float b = a;// 大到小float
2022-05-14 21:15:43 624
原创 Python编程:从入门到实践.pdf :Python 基础笔记,最基本的 Python语法,快速上手入门 Python
在学习 python 时的一些简单的笔记,参考学习书本为 Python编程:从入门到实践.pdf 。因为前三章相对简单,因此没有具体的笔记。测试部分的笔记待补充。文章目录第四章——列表第五章——if语句第七章——用户输入和while循环第八章——函数第九章——类第十章——文件和异常测试代码注:原文章在 jupyter notebook 书写,因此文章中的代码块上面为 python 代码,下面为即时运行结果第四章——列表name='mike'name.title()print(name)pri
2022-05-06 09:41:08 5528
原创 [C++] 在OJ中读取各种输入办法
在 OJ 做题中,往往会遇到各种输入,而这并不是 OJ 题目的核心所在,但往往会卡我们很久,因此本文总结了 OJ 中可能的输入情况,尽可能减少在输入上所花费的时间。参考:部分内容参考自文章目录一. 逗号分隔数字的输入二. 读入未知数量的数字/字符/字符串,用空格分开三. 需要读入空格等空白字符,需要一个一个字符的读取四. 直接读取一整行数据五. 模拟某某机的题目中 读取命令+参数六. 读取矩阵七. 读取图一. 逗号分隔数字的输入/** * 处理1,2,3;1,1的输入 * @return */
2022-05-04 21:53:47 1825
原创 使用JDBC完成一个简单的todolist数据库管理
使用JDBC完成一个简单的todolist数据库管理目标:使用JDBC完成对todolist数据库的管理
2022-04-13 22:22:24 1009
原创 初学者必看——详解python中类(class)创建和继承的相关问题
类(class)被用于表示和模拟现实中的事物,相当于一个模板,由相同的类创建的实例具有相同的属性和功能,通常被用于面向对象编程本文介绍类的相关基本知识,重点分析了关于类的创建和类的继承的一些初学者容易误解和不理解的问题,方便大家掌握类
2021-04-06 11:39:32 717
原创 关于python中变量存储的一些总结
因为先学的C语言,现在学python时发现它的变量存储方式有很大的不一样。无需声明变量类型python是动态语言,在进行变量的声明时,不需要声明变量的类型,而是在编译运行时根据给变量赋的值来确定变量的类型。我认为可以这样做的原因是python不会给变量分配空间,而是在赋值时,把变量与存入的这个值相关联,比如a=1,只是1存储在某个地址中,而a则是关联到了这个地址。而当再声明一个变量b=1,此时也没有给b分配空间,同样的只是把b与1关联,而前面a已经与1关联,因此两者会关联到同一个地址。a=1b=
2021-03-16 20:25:28 416
原创 python中print函数的end和sep参数的用法
对于print()函数,很多人都是再熟悉不过了的,但是其实对于这个函数,很多人可能只是知道它可以输出对象,实际上,print()函数有很多个参数可以添加,这里介绍常用到的两个参数end,sep。endend参数用来设定print输出的内容以什么结尾,默认是‘\n’,这就是为什么多个print()函数输出的内容会分别换行,而在如C语言中则会出现在同一行。print('hello')print('world')print('!')helloworld!我们可以通过设置end=‘’来设置结尾
2021-03-13 22:08:48 20451 3
原创 scanf的格式字符串不能以\n,\t,空格等空白字符结尾
之前在写代码的过程中发现如果scanf中的格式字符串以\n结尾,那么输入完后,会不能中止程序,一直按回车也没用,只有再输入一个字符才能中止,同样的事情也发生在以\t和空格结尾。#include<stdio.h>int main(){ scanf("%d\n");}#include<stdio.h>int main(){ scanf("%d\t");}#include<stdio.h>int main(){ scanf("%
2021-02-25 10:04:12 2327
原创 C语言中\b的作用
对于\b,起初,我在c primer plus中看到,\b解释为退格,代表backspace,退格键,但经过我的测试,其实这个退格键和键盘上的backspace不一样,并不会删除文本,而是移动光标的位置作用。如下面这段程序#include<stdio.h>int main(){ printf("12345\b");}结果是12345所以\b没有像键盘上的一样,是往左删除文字而下面这个程序#include<stdio.h>int main(){ prin
2021-02-23 17:15:10 20210 21
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人