- 博客(51)
- 资源 (3)
- 收藏
- 关注
转载 AVX指令集
一、AVX指令集CPU依靠指令来计算和控制系统,指令集是指CPU能执行的所有指令的集合,每一类CPU都有其支持的指令集。比如说目前intel和AMD的绝大部分处理器都使用X86指令集,因为它们都源自于X86架构。但无论CPU有多快,X86指令也只能一次处理一个数据,但这种单指令单数据(SISD)的指令集效率并不高,因此,为了提高CPU的工作效率,需要增加一些特殊的指令满足时代进步的需求,这些新增的指令就构成了扩展指令集。一条指令操作多个数据(SIMD).是CPU基本指令集的扩展.主要用于提供fine
2021-12-26 17:03:49 13360 1
原创 GDB之调试回退
GDB之调试回退b mainrunrecord // 重中之重,且一定要在run后面执行(gdb) apropos reverserc -- Continue program being debugged but run it in reversereverse-continue -- Continue program being debugged but run it in reversereverse-finish -- Execute backward until just befor
2021-12-23 13:46:10 4985
原创 二进制浮点数以及二进制浮点数算术运算
二进制浮点数以及二进制浮点数算术运算二进制浮点数表示半精度浮点数单精度浮点数双精度浮点数特殊情况浮点数的运算步骤一、对阶二、尾数运算三、结果规格化左规操作右规操作四、 舍入处理五、 溢出判断六、例子二进制浮点数加法二进制浮点数减法浮点运算逻辑电路Reference二进制浮点数表示阶码(指数)就是指数位存储的值,而偏阶(移码)则不同精度的浮点数的偏阶也各不相同,具体可以查看指数偏差。Bias=2k−1−1Bias=2^{k-1}-1Bias=2k−1−1, 其中k是指数中的位数。半精度浮点数半精度
2021-12-19 16:34:31 11661 1
原创 树形加法器(Brent-Kung加法器)
树形加法器(Brent-Kung加法器)并行前缀加法器块g,p信号与并行前缀运算块g,p信号对、合并操作与区间合并进位计算的并行前缀表示并行前缀加法器的一个完整示例g[i,i+3]g_{[i, i+3]}g[i,i+3] 和 p[i,i+3]p_{[i, i+3]}p[i,i+3] 分别叫做“块 ggg 信号”和“块 ppp 信号”,代表了这个加法器从第iii bit到第 i+3i+3i+3 bit这个块的进位信息。它们的具体形式如:一般的 gi,i+ng_{i, i+n}gi,i+n 和 p
2021-11-30 09:09:12 6055 3
原创 如何创建python虚拟环境
如何创建python虚拟环境pip install virtualenv //安装virtualenv .venv --python=/usr/bin/python3.5(指定版本python的绝对路径) //创建虚拟环境,其中.venv是虚拟环境名,可以任意设置source .venv/bin/activate // 启动虚拟环境( .venv 是我的名字你可以自己命名)deactivate//退出虚拟环境若需切换版本,只需将第二条命令再执行一遍即可。若想保留当前虚拟环境,那么记得换个虚拟环境名
2021-11-16 10:14:19 687
转载 c++11 类默认函数的控制:“=default“ 和 “=delete“函数
c++11 类默认函数的控制:"=default" 和 "=delete"函数#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>#include <vector>#include <map>//c++11 类默认函数的控制:"=default" 和 "=delete"函数/*C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以
2021-11-12 15:31:12 136
转载 智能指针shared_ptr的用法
智能指针shared_ptr的用法shared_ptr的基本用法使用shared_ptr需要注意的问题为了解决C++内存泄漏的问题,C++11引入了智能指针(Smart Pointer)。智能指针的原理是,接受一个申请好的内存地址,构造一个保存在栈上的智能指针对象,当程序退出栈的作用域范围后,由于栈上的变量自动被销毁,智能指针内部保存的内存也就被释放掉了(除非将智能指针保存起来)。C++11提供了三种智能指针:std::shared_ptr, std::unique_ptr, std::weak_pt
2021-09-25 16:45:56 207
原创 什么是对象?什么是类?
什么是对象?什么是类?对象是一个自包含的实体,用一组可识别的特性和行为来标识。类是具有相同的属性和功能的对象的抽象的集合。
2021-09-18 09:20:41 280
原创 git push无法推送本地代码至github问题解决
git push无法推送本地代码至github问题解决如何解决这一问题?今天在本地写完代码准备push到github上,但是报了如下错误,这行提示说明Github 不再支持个人密码认证了,都要使用 personal access token(个人访问令牌) 认证。如何解决这一问题?使用ssh-keygen -t rsa -C ‘github的邮箱地址’生成特定的公钥和私钥,出现的提示一路回车就行。在~/.ssh目录下,生成了公钥(带.pub)和私钥,其中私钥要保存好,务必不要泄露。然后把公钥
2021-09-10 16:45:57 3754
原创 C标准库string.h源码(简单版)
C标准库string.h源码(简单版)strcpy/strncpystrcat/strncatstrcmp/strncmpstrchr/strrchr/strchrnul/strstrstrcpy/strncpychar * strcpy (char * dst, const char * src){ char * cp = dst; while( *cp++ = *src++ != '\0') ; /* Copy src over dst
2021-09-04 21:07:42 1800
转载 【C】malloc动态分配内存和free释放
这篇文章写的很好,拿来吧你。版权声明:本文为CSDN博主「朱又炖粉条」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/shimadear/article/details/80292671先看一个例子#include<stdio.h>int max=10; //data区,不产生具体的可执行代码。void main(){ //局部变量都在栈区。 栈内存自动分配,释放。堆需要手动mallo
2021-08-13 16:24:00 426
原创 YouCompleteMe(YCM)安装时遇到的问题(能遇到的几乎都遇到了)
首先YCM项目内有许多子模块,然而由于国内的围墙问题,所以下载github上的东西会很慢,解决方法一,去gitee上找对应的仓库解决方法二,github的解决方法首先需要装很多依赖(应该只需要python3.6、vim8.1以上)不过我把这个链接的依赖全部装了一遍。附上我看的两个最主要的:python3升级vim升级这些东西全部装完后,就可以到YCM的目录下进行编译了提前说明一下我的YCM是现通过vim-plug装的,装完后需要去YCM目录下(.vim/plugged/YouComplet
2021-08-11 20:07:17 7331 1
原创 leetcode——344. 反转字符串(递归解法)
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]class
2021-08-05 14:14:16 230
原创 C++ 函数返回对象时并没有调用拷贝构造函数
C++函数返回的临时对象用来初始化类对象是否调用拷贝构造函数正常情况下,如果一个函数返回一个类对象,那它会生成一个临时对象进行拷贝。最近,被这个问题纠结了很久,为什么纠结,因为遇到的代码输出和我预想的并不一样,一度以为并没有临时对象这个东西。还好终于搞明白了临时对象初始化类对象调用拷贝构造函数的问题!下面是我解疑过程中遇到的代码:#include <iostream>using namespace std;class Test{ public: int a; Test(
2021-07-27 15:41:50 5387 9
原创 如何理解 C++ 中的深拷贝和浅拷贝?
如何理解 C++ 中的深拷贝和浅拷贝?回答一:这个问题其实答案很简单,而且基本上每一本C++书都会提及,但是或许对于初学者并不那么容易的理解,所以我想尝试以我的比喻来讲解。我认为浅拷贝是一个不喜欢思考的懒汉,而深拷贝则是一个思维严谨,喜欢思考的人。对于懒汉来说,虽然给了他任务,但是他总是想尽量的少做一些事情,所以很多时候做出来的东西就是只看到了表面,不会去思考对不对。struct X{ int x; int y;};对于懒汉来说,他很直白的看到了x,看到了y,然后就拷贝x和y,然后就不
2021-07-26 18:54:46 173
原创 C++实现快速排序,最简单的代码(详细解读)
快速排序的过程是这样的:假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。 3 1 2 5 4 6 9 7 10 8方法其实很简单: 分别从初始序列“6 1 2 7 9 3 4
2021-07-22 22:10:52 11338 2
原创 程序查错——参数引用
程序查错——参数引用#include <string.h>using namespace std;const float pi = 3.14f;float f;float f1(float r){ f = r*r*pi; return f;}float& f2( float r){ f = r*r*pi; return f;}int main(){ float f1(float=5); float& f2(float=5);
2021-07-22 11:10:16 107
原创 C语言共用体(Union)
我们知道结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体或联合体(Union),它的定义格式为:union 共用体名{ 成员列表};结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。共用体使用了
2021-07-16 19:40:41 153
原创 详细解读函数指针与回调函数
详细解读函数指针与回调函数什么是函数指针函数指针的使用函数指针的定义如何使用函数指针函数指针作形参返回函数指针函数指针数组完整示例:回调函数概念回调函数的意义本文参考了一下文章,文章1文章2文章3文章4文章5什么是函数指针 函数指针也是一种指针,只是它指向的不是整型,字符型而是函数。在C中,每个函数在编译后都是存储在内存中,并且每个函数都有一个入口地址,根据这个地址,我们便可以访问并使用这个函数。函数指针就是通过指向这个函数的入口,从而调用这个函数。 函数指针就是指向函数的指针,指向某
2021-06-01 09:32:39 1469
转载 全局变量和extern详解
全局变量和extern详解声明与定义extern声明与定义首先讲一下声明与定义声明不等于定义,声明只是指出了变量的名字,并没有为其分配存储空间;定义指出变量名字同时为变量分配存储空间,定义包含了声明extern int i; //声明变量i,但没分配存储空间,还不能使用, 可以出现很多次,下面的三种情况只能出现一次int i; //定义了变量i,并分配了空间,可以使用extern int a =0 //定义一个全局变量a 并给初值int a =0;//定义一个全局
2021-06-01 08:36:19 4957
转载 std和stl的关系
std和stl的关系一、std和stl的关系二、实现自己的库和命名空间【前言】在写程序时,虽然一直这么用,有点疑惑为甚么引入了头文件.h还要在加上using namespace std?例如:下面就介绍一下,为什么在引用了iostream头文件的情况下,想使用cout,还要加上std命名空间。一、std和stl的关系stl是标准模板库,是标准库的子集。主要是容器、算法、迭代器三个方面,几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。在C+
2021-05-25 20:22:34 812
转载 Linux mkdir 命令
Linux mkdir 命令Linux mkdir(英文全拼:make directory)命令用于创建目录。语法mkdir [-p] dirName参数说明:-p 确保目录名称存在,不存在的就建一个。实例:在工作目录下,建立一个名为 runoob 的子目录 :mkdir runoob在工作目录下的runoob2 目录中,建立一个名为 test 的子目录。若runoob2目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 runoob2 目录不存在,则产生错误。)m
2021-04-21 19:05:08 108
MarkDown技巧:实现页内跳转
MarkDown技巧:实现页内跳转html标签实现html标签实现定义一个锚(id):<span id="jump">跳转到的地方</span>使用markdown语法:[点击跳转](#jump)
2021-04-13 15:48:50 210
原创 Minisat的基本使用方法
Minisat的基本使用方法minisat安装和基本知识minisat使用示例minisat安装和基本知识MiniSat是一种简约的开源SAT解算器,旨在帮助研究人员和开发人员开始使用SAT,目前在许多项目中使用。在此页面上minisat,您将找到与MiniSat相关的二进制文件,源代码,文档和项目,包括伪布尔求解器MiniSat +和CNF最小化器/预处理器SatELite。Linux下安装方法sudo apt install minisat,命令行键入minisat,出现以下界面即为安装成功命
2021-04-08 14:42:57 5136 2
转载 可能是最全面的 python 字符串拼接总结
可能是最全面的 python 字符串拼接总结加号连接逗号连接直接连接%操作符format方法join内置方法f-string方式*操作符小结连接少量字符串时连接大量字符串时在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅。加号连接第一种,通过+号的形式:>>> a, b = 'hello', ' world'>>> a + b'hello world'逗号连接第二种,通过,逗号的形式:>>>
2021-03-23 16:58:48 422
原创 Linux系统SSH客户端断开后保持进程继续运行配置方法
Linux系统SSH客户端断开后保持进程继续运行配置方法概述详细信息使用管理终端执行使用nohup执行使用screen执行安装screen工具使用简介适用于概述在Linux系统中,通常我们在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开SSH连接或关闭客户端软件,否则可能会导致执行中断。本文介绍几种保障程序在用户退出登录后持续运行的方法。详细信息使用管理终端执行通过使用管理终端连接Linux实例登录实例。执行所需程序或脚本。之后需要查看任务执行状态时,再次连接管理终端查看即可。
2021-03-22 23:44:04 1099 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人