深圳幻海软件技术有限公司 欢迎您!

  • 量子计算(二十二):Grover算法

    文章目录Grover算法一、什么是搜索算法 二、怎么实现Grover搜索算法Grover算法一、什么是搜索算法 举一个简单的例子,在下班的高峰期,要从公司回到家里,开车走怎样的路线才能够耗时最短呢?最简单的想法,当然是把所有可能的路线一次一次的计算,根据路况计算每条路线所消耗的时

  • 单核M1 CPU上实现FP32 1.5 TFlops算力?这是一份代码指南

    ​1.5TFlops到底有何魅力?首先,这是在电池供电的单核MacBookAir2020上运行;其次,这会以每条指令约0.5纳秒的延迟运行。那些强大的加速器或GPU张量核不在我们的考虑范畴。我们这里讨论的是与CPU寄存器相隔一个周期的实际线性代数性能。奇怪的是,苹果一直在向我们隐瞒这一点。在本文中,

  • loongarch架构介绍—基础指令(一)

    ​​想了解更多关于开源的内容,请访问:​​​​51CTO 开源基础软件社区​​​​https://ost.51cto.com​​前言最近龙芯中科宣布,龙芯2K0500开发板已与OpenHarmony(开源鸿蒙系统)完成了适配验证,LoongArch平台实现初步支持OpenHarmony。本

  • 关于栈迁移的那些事儿

    一、前言现在的CTF比赛中很难在大型比赛中看到栈溢出类型的赛题,而即使遇到了也是多种利用方式组合出现,尤其以栈迁移配合其他利用方式来达到组合拳的效果,本篇文章意旨通过原理+例题的形式带领读者一步步理解栈迁移的原理以及在ctf中的应用。二、前置知识在笔者看来栈迁移的原理其实可以总结为一句话:因为栈溢出

  • 我们一起学习实模式和保护模式

    今天我们就系统的讲下实模式和保护模式。我觉得能很形象的说明保护模式存在的意义。先看下面这段代码。复制intmain(){int*addr=(int*)0;cli();//关中断while(1){*addr=0;addr++;}return0;}1.2.3.4.5.6.7.8.9.10.11.这段代码

  • 深入研究“栈”,你学会了吗?

    1.栈是什么在计算机软件开发过程中,我们经常听到,看到,用到“栈”。那么到底“栈”是什么呢?“栈”的作用是什么呢?不妨我们先看一下《新华字典》是如何定义的。栈基本含义是储存货物或供旅客住宿的房屋,如货栈,客栈。说到客栈又让我联想到一部著名的武侠电影“新龙门客栈”,客栈就是提供给各位大侠一个临时居住的

  • 手把手教你使用 i2c-tools

    i2c-tools简介在嵌入式开发中,有时候需要确认硬件是否正常连接,设备是否正常工作,设备的地址是多少等等,这里我们就需要使用一个用于测试I2C总线的工具:i2c-tools。i2c-tools工具是一个专门调试i2c的,开源,可获取挂载的设备及设备地址,还可以读写I2C设备寄存器。调试新的设备驱

  • 聊一聊并发计算中的串行思考

    软件系统性能的提升的重要方法之一是支持并发性编程,尤其是采用多核体系结构的时候。在全局数据库、云计算和区块链应用程序中,并发性对于实现容错和分布式服务也是至关重要的。然而,对并发性的掌握一直是令人畏惧的挑战之一。并发编程是困难的,要同时处理许多可能任务的非确定性行为,包括故障、操作系统、共享内存架构

  • 一文读懂|栈溢出攻击

    什么是栈简单来说,栈是一种LIFO(LastInFristOut,后进先出)形式的数据结构。栈一般是从高地址向低地址增长,并且栈支持push(入栈)和pop(出栈)两个操作。如下图所示:push操作先将栈顶(sp指针)向下移动一个位置,然后将数据写入到新的栈顶;而pop操作会从栈顶读取数据,并且将栈

  • 400 行 C 代码实现一个虚拟机

    1.引言本文将教你编写一个自己的虚拟机(VM),这个虚拟机能够运行汇编语言编写的程序,例如我朋友编写的2048或者我自己的Roguelike。如果你会编程,但希望更深入地了解计算机的内部原理以及编程语言是如何工作的,那本文很适合你。从零开始写一个虚拟机听起来可能让人有点望而生畏,但读完本文之后你会惊

  • 十七条C语言编程小知识

     1.流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件执行”功能。2.在LPC2200系列中:可以通

  • Go | 1.17正式版本之初印象

    8月17日凌晨,Go1.17正式发布!迫不及待的阅读了版本说明:https://golang.google.cn/doc/go1.17。语言变化该版本主要包含三个小小的语法(糖)增强:增加了slice对象直接强制类型转换为数组指针的能力。在unsafe中增加了Add函数。在unsafe中增加了Sli

  • C还是Rust:选择哪个用于硬件抽象编程

    在Rust中使用类型级编程可以使硬件抽象更加安全。Rust是一种日益流行的编程语言,被视为硬件接口的最佳选择。通常会将其与C的抽象级别相比较。本文介绍了Rust如何通过多种方式处理按位运算,并提供了既安全又易于使用的解决方案。   <如显示不全,请左右滑动>

  • 编程语言的巅峰境界

    “哇塞,怎么可能这么简单!”当C语言老头儿还是小伙子的时候,***次见到了汇编,发出了这么一声感慨。在C语言看来,这汇编的指令实在是太简单了,简单到了令人发指的地步,只有这么几类指令:数据传输类:就是把数据从一个位置复制到另外一个位置,比如从内存到寄存器,或者从寄存器到内存,或者从寄存器到寄存器。算

推荐阅读