- 1、按字节赋值与清零赋值用|例:GPIOE_ODR |= 1<<5; //把1赋给了第5位清零用&例:GPIOE_ODR &= ~(1<<5); //把第5位清零了 2、ifdef条件编译跳过程序1,执行程序2#ifdef 标识符程序段 1#else程序段2#endif防止重复编译#ifndef 标识符#define 标识符程序段#endif不编译(跳过编译)#if 0程序段 1... 1、按字节赋值与清零赋值用|例:GPIOE_ODR |= 1<<5; //把1赋给了第5位清零用&例:GPIOE_ODR &= ~(1<<5); //把第5位清零了 2、ifdef条件编译跳过程序1,执行程序2#ifdef 标识符程序段 1#else程序段2#endif防止重复编译#ifndef 标识符#define 标识符程序段#endif不编译(跳过编译)#if 0程序段 1...
- 大家好,我是 CoderBin,在面试当中,手撕代码的场景屡见不鲜,手写 JS 当中的方法更是最常见的一种,所以本文将全面的,详细解析compose方法的实现原理,并手写出自己的compose通用组合函数方法,相信看完本文的小伙伴都能从中有所收获💪。 创作不易,你们的点赞收藏留言就是我最大的动力💓 如果文中有不对、疑惑的地方,欢迎各位小伙伴们在评论区留言指正🌻 大家好,我是 CoderBin,在面试当中,手撕代码的场景屡见不鲜,手写 JS 当中的方法更是最常见的一种,所以本文将全面的,详细解析compose方法的实现原理,并手写出自己的compose通用组合函数方法,相信看完本文的小伙伴都能从中有所收获💪。 创作不易,你们的点赞收藏留言就是我最大的动力💓 如果文中有不对、疑惑的地方,欢迎各位小伙伴们在评论区留言指正🌻
- 在笔者上一篇文章`《驱动开发:内核枚举IoTimer定时器》`中我们通过`IoInitializeTimer`这个API函数为跳板,向下扫描特征码获取到了`IopTimerQueueHead`也就是IO定时器的队列头,本章学习的枚举DPC定时器依然使用特征码扫描,唯一不同的是在新版系统中DPC是被异或加密的,想要找到正确的地址,只是需要在找到DPC表头时进行解密操作即可。 在笔者上一篇文章`《驱动开发:内核枚举IoTimer定时器》`中我们通过`IoInitializeTimer`这个API函数为跳板,向下扫描特征码获取到了`IopTimerQueueHead`也就是IO定时器的队列头,本章学习的枚举DPC定时器依然使用特征码扫描,唯一不同的是在新版系统中DPC是被异或加密的,想要找到正确的地址,只是需要在找到DPC表头时进行解密操作即可。
- 数据~数据~数据~重要的事情说三遍,数据为王的时代。我们的数据怎么管理很重要,今天就来学习学习 Go 语言内置的 3 种与数据为舞的类型:数组、切片和映射。今天的文章先来学习一下数组。什么是数组Go 语言中,数组是一个长度固定的数据类型,用于存储一段具有相同类型元素的序列(连续块)。在底层中,数组占用的内存是连续的,所以访问起来速度非常块,还可以根据任意的索引找到相应的数据。数组的结构数组的... 数据~数据~数据~重要的事情说三遍,数据为王的时代。我们的数据怎么管理很重要,今天就来学习学习 Go 语言内置的 3 种与数据为舞的类型:数组、切片和映射。今天的文章先来学习一下数组。什么是数组Go 语言中,数组是一个长度固定的数据类型,用于存储一段具有相同类型元素的序列(连续块)。在底层中,数组占用的内存是连续的,所以访问起来速度非常块,还可以根据任意的索引找到相应的数据。数组的结构数组的...
- 与 C 语言类型,Go 也支持结构体类型。有时你需要保存超过一种类型的数据。我们学习了切片,它能够保存一组数据。然后学习了映射,它能保存一组键和一组值。这两种数据结构都只能保存一种类型。有时,你需要一组不同类型的数据,例如人的信息,包括姓名(字符串)、年龄(整型)、身高和体重(浮点型);又如学生记录,混合保存学生名字和成绩(浮点数)。此时,无法用切片或者映射来保存。但是你可以使用结构体类型 ... 与 C 语言类型,Go 也支持结构体类型。有时你需要保存超过一种类型的数据。我们学习了切片,它能够保存一组数据。然后学习了映射,它能保存一组键和一组值。这两种数据结构都只能保存一种类型。有时,你需要一组不同类型的数据,例如人的信息,包括姓名(字符串)、年龄(整型)、身高和体重(浮点型);又如学生记录,混合保存学生名字和成绩(浮点数)。此时,无法用切片或者映射来保存。但是你可以使用结构体类型 ...
- 1:冒泡排序稳定时间复杂度:最好:O(n)、最坏:O(n^2^)、平均:O(n^2^)空间复杂度:O(1)void bubbleSort(int[]arr,int n){ for(int i=0;i<n-1;i++){ boolean flag= false; for(int j=0;j<n-i-1;j++){ if(arr[j]>arr[j+1]){ swap(arr,j,... 1:冒泡排序稳定时间复杂度:最好:O(n)、最坏:O(n^2^)、平均:O(n^2^)空间复杂度:O(1)void bubbleSort(int[]arr,int n){ for(int i=0;i<n-1;i++){ boolean flag= false; for(int j=0;j<n-i-1;j++){ if(arr[j]>arr[j+1]){ swap(arr,j,...
- 🎄JVM线程私有和共享的区域JVM线程私有的区域有:虚拟机栈,本地方法栈,程序计数器。虚拟机栈:主要存储方法,局部变量,运行的数据。本地方法栈:主要存储本地方法(含有Native关键字的方法)。程序计数器:存储程序运行位置的字节码行号指示器。JVM线程共享的区域有:Java堆,元空间Java堆:存储所有创建的对象,数组等。元空间:存储虚拟机加载的字节码数据,常量,静态变量,运行时常量池等... 🎄JVM线程私有和共享的区域JVM线程私有的区域有:虚拟机栈,本地方法栈,程序计数器。虚拟机栈:主要存储方法,局部变量,运行的数据。本地方法栈:主要存储本地方法(含有Native关键字的方法)。程序计数器:存储程序运行位置的字节码行号指示器。JVM线程共享的区域有:Java堆,元空间Java堆:存储所有创建的对象,数组等。元空间:存储虚拟机加载的字节码数据,常量,静态变量,运行时常量池等...
- 1. ndarray 的创建及获取属性上节课我们有提到过 ndarray 的创建,我只需要将列表传入到 np.array() 函数中。例如:import numpy as npmy_list = [1, 2, 3, 4, 5, 6]my_arr = np.array(my_list)print(my_arr)ndarray 创建完成后,我们可以查看 ndarray 的属性。1.1 查看类型1... 1. ndarray 的创建及获取属性上节课我们有提到过 ndarray 的创建,我只需要将列表传入到 np.array() 函数中。例如:import numpy as npmy_list = [1, 2, 3, 4, 5, 6]my_arr = np.array(my_list)print(my_arr)ndarray 创建完成后,我们可以查看 ndarray 的属性。1.1 查看类型1...
- 冒泡排序冒泡排序是一种最简单的交换排序算法。什么是交换?交换就是两两进行比较,如果不满足次序就可以交换位置。比如,我们想要从小到大排序,通过两个位置上的值两两比较,如果逆序就交换,使关键字大的记录像泡泡一样冒出来放在末尾。重复执行若干次冒泡排序,最终得到有序序列。冒泡排序的名字来源于:值较小的元素如同”气泡“一样逐渐漂浮到序列的顶端。思想给定一个N个元素的数组,冒泡法排序将:如果元素大小关系... 冒泡排序冒泡排序是一种最简单的交换排序算法。什么是交换?交换就是两两进行比较,如果不满足次序就可以交换位置。比如,我们想要从小到大排序,通过两个位置上的值两两比较,如果逆序就交换,使关键字大的记录像泡泡一样冒出来放在末尾。重复执行若干次冒泡排序,最终得到有序序列。冒泡排序的名字来源于:值较小的元素如同”气泡“一样逐渐漂浮到序列的顶端。思想给定一个N个元素的数组,冒泡法排序将:如果元素大小关系...
- Collections 模块本文将简单介绍一个 Python 模块 Collections 。这个模块实现了一些很好用的数据结构,可以帮助我们解决不同的实际问题。这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。namedtuple()创建命名元组子类的工厂函数d... Collections 模块本文将简单介绍一个 Python 模块 Collections 。这个模块实现了一些很好用的数据结构,可以帮助我们解决不同的实际问题。这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。namedtuple()创建命名元组子类的工厂函数d...
- 前言Python 提供了许多方法来创建二维列表/数组。然而,但大多数人不知道这些创建方法的区别。 创建一维数组/列表先让我们先来看看创建大小为 N、初始化值为 0 的一维数组(列表)的常见方法。原始方法array1 = [0] * 5array1[0, 0, 0, 0, 0]用列表推导式array2 = [0 for i in range(5)]array2[0, 0, 0, 0, 0]在... 前言Python 提供了许多方法来创建二维列表/数组。然而,但大多数人不知道这些创建方法的区别。 创建一维数组/列表先让我们先来看看创建大小为 N、初始化值为 0 的一维数组(列表)的常见方法。原始方法array1 = [0] * 5array1[0, 0, 0, 0, 0]用列表推导式array2 = [0 for i in range(5)]array2[0, 0, 0, 0, 0]在...
- 指针就是个变量,用来存放地址,地址唯一标识一块内存空间 指针就是个变量,用来存放地址,地址唯一标识一块内存空间
- @[toc] 题目 破局共享汽车自 2015 年以来,共享汽车行业曾经“百花齐放”,多个项目获得巨额融资。但因为模式过重、运营成本过高、无法盈利等问题,陆续有共享汽车公司因为资金链断裂而倒闭。据易观发布的《2019 中国共享汽车平台创新白皮书》显示,2019 年的共享汽车行业,是中小参与者不断出局,头部平台拉动行业重启增长的一年。而共享汽车增速在 2019 年 5–10 月达到 2.21%,... @[toc] 题目 破局共享汽车自 2015 年以来,共享汽车行业曾经“百花齐放”,多个项目获得巨额融资。但因为模式过重、运营成本过高、无法盈利等问题,陆续有共享汽车公司因为资金链断裂而倒闭。据易观发布的《2019 中国共享汽车平台创新白皮书》显示,2019 年的共享汽车行业,是中小参与者不断出局,头部平台拉动行业重启增长的一年。而共享汽车增速在 2019 年 5–10 月达到 2.21%,...
- 最近在提炼一个功能的时候发现可配置项过多,如果全都耦合在一起,首先是代码上不好维护、扩展性不好,其次是如果我不需要该功能的话会带来体积上的冗余,考虑到现在插件化的流行,于是小小的尝试了一番。先介绍一下这个库的功能,一个简单的让你可以在一个区域,一般是图片上标注一个区域范围,然后返回顶点坐标的功能:话不多说,开撸。 插件设计插件我理解就是一个功能片段,代码上可以有各种组织方式,函数或类,各个库... 最近在提炼一个功能的时候发现可配置项过多,如果全都耦合在一起,首先是代码上不好维护、扩展性不好,其次是如果我不需要该功能的话会带来体积上的冗余,考虑到现在插件化的流行,于是小小的尝试了一番。先介绍一下这个库的功能,一个简单的让你可以在一个区域,一般是图片上标注一个区域范围,然后返回顶点坐标的功能:话不多说,开撸。 插件设计插件我理解就是一个功能片段,代码上可以有各种组织方式,函数或类,各个库...
- 源码角度了解ConcurrentSkipListMapConcurrentSkipListMap的key是有序的,它是基于跳查表来进行实现的map,跳查表可以实现无锁的链表,我们知道链表的操作插入元素的时候直接修改前一个位置的节点,指向这个节点,然后这个节点又指向下一个节点,删除元素的时候直接修改前一个位置的节点指向删除节点的下一个节点,当插入和删除并发执行的时候,可能出现问题,把插入的节... 源码角度了解ConcurrentSkipListMapConcurrentSkipListMap的key是有序的,它是基于跳查表来进行实现的map,跳查表可以实现无锁的链表,我们知道链表的操作插入元素的时候直接修改前一个位置的节点,指向这个节点,然后这个节点又指向下一个节点,删除元素的时候直接修改前一个位置的节点指向删除节点的下一个节点,当插入和删除并发执行的时候,可能出现问题,把插入的节...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考
2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本
2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签