I2S 总线学习:1-有关概念
背景 I2S总线 是一种常见的总线,也是需要掌握的。 概念 I2S(Inter—IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。 I2S的总线规范 I2S有4根线,包括:IISDI(串行数据输入),IISDO(串行数据输出
【设计模式1】-单例模式
三个特点 单例类只有一个实例对象; 该单例对象必须由单例类自行创建; 单例类对外提供一个访问该单例的全局访问点; 实现模式1,懒汉模式。需要加关键字volatile 和 synchronized才能实现线程安全,加了之后有性能开销。 public class LazySingleton
{
private static volatile LazySingleton instance=null; //保证 instance 在所有线程中同步
private LazySing
LightOJ 1306 Solutions to an Equation
给定方程 \(Ax+By+C=0\) 要求 \(x_1 \le x \le x_2\) , \(y_1 \le y \le y_2\) 求整数解的个数 若 \(A,B,C\) 中有 \(0\),就变成了一元一次,这个直接模拟就好 \(exgcd\) 用来求解 \[ ax+by=c \] 这类方程,且仅当 \(\gcd(a,b)|c\) 时方程有整数解 若 \(k=\gcd(a,b,c)\) 且 \(k>1\),那就把 \(a,b,c\) 都除以 \(k\) ,让 \(c=\gcd(a,b)\)
数据库系统原理:MVCC
什么是MySQL InnoDB下的当前读和快照读? 当前读 它读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。 快照读 快照读的前提是隔离级别不是可串行化,串行级别下的快照读会退化成当前读。 快照读是基于提高并发性的考虑,快照读的实现基于MVCC。可以认为MVCC是行锁的一个变种,但它在很多情况下,避免了加锁操作。 快照读可能读到的并不一定是最新版本,而有可能是之前的历史版本。 MVCC就是为了实现读或写冲突不加锁,而这个读指的就是快照读,而非当前读
python学习随笔(3)
内存的驻留机制 符合命名规则的字符串自动贮存(进包含下滑线,字母和数字) in/ not in 判断字符(串)是否在相关字符串内 join 的用法 str = "-"
seq = ("a", "b", "c") # 字符串序列
print str.join( seq )
左乘右除,操作最快(实测差别不大) 相比于,字符串的+操作,与join操作,运行时间差别很小。 join操作不产生中间变量。
python学习Day20--属性、类方法和静态方法+类多继承算法补充
【知识点】 1、属性:将一个方法 伪装成一个 属性,在代码的级别上没有本质的提升,但是然其看起来合理 @property 1 class Person:
2 def __init__(self,name,hight,weight):
3 self.name=name
4 self.__hight=hight
5 self.__weight=weight
6
7 @property #添加proper
codeforces Array Without Local Maximums
题目描述 题解 考虑dp,设f[i][j][0/1]表示前i个数,第i个数为j,第i-1个数小于/大于等于j的方案数 考虑转移,假设第i个数选j,第i-1个数选k,则 1.$k>j$ $f[i-1][k][1]=>f[i-1][j][1]$ 2.$k=j$ $f[i-1][k][0]+f[i-1][k][1]=>f[i-1][j][1]$ 3.$k<j$ $f[i-1][k][0]+f[i-1][k][1]=>f[i-1][j][0]$ 前缀和优化即可,效率: $O(200n)$ 代码 #in
iOS OpenAL播放声音的流程
iOS移动设备进行音频播放时,可以使用openal 注意:openal 默认开启的是手机听筒(有多个播放设备 :alcopendevice(null)),如果想让声音通过扬声器进行播放,可通过audiosession的audiosessionsetproperty进行设置:kaudiosessionproperty_overridecategorydefaulttospeaker,此时声音会即从扬声器出来,也从听筒出来。 使用openal播放声音的步骤: 1 alcopendevice(nul
【Unity|C#】基础篇(20)——枚举器与迭代器(IEnumerable/IEnumerator)
【学习资料】 《C#图解教程》(第18章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.com/s/1mhOmBG0 【笔记】 传送门(看这篇就好了): https://www.cnblogs.com/moonache/p/6548043.html List 枚举器实现源码 获取枚举器 :GetEnumerator() 当前迭代对象(只读) :Current 继续往下迭代 :Mo
opencv:图像噪声
常见噪声的类型: 椒盐噪声 高斯噪声 其他噪声。。。。。。 手动生成图像噪声: #include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src = imread("f:/images/lena.jpg");
if (src.empty())
{
pri
成员函数不能作为回调函数(踩坑经验)
还记得c++ primer一书中说过,成员函数有一个隐藏的this指针作为参数。 这里的com 成员函数看似有两个参数,但是还有一个隐藏的this指针参数,所以它是有三个参数的,当sort进行调用时会造成参数不匹配,编译错误。 但是当把com函数声明为静态成员函数时,它就没有了隐藏的this指针参数,所以此时会编译通过。
C++、MFC一站式高级开发课程 完整版
课程简介: 专题涵盖C语言高级课程(指针、内存管理),包含C++高级编程( 网络、多线程、动态库、模板等 ),在扎实的C++功底上,进阶MFC高级开发课程! 课程提供全套完整知识点、循序渐进、让小白掌握IT企业级编程开发、轻松搞定高薪岗位! 共13门课程 / 92小时54分钟 课程目录: 第一阶段: C语言基础与高级编程 5门课程 22小时31分钟 1、从小白入门C语言—通俗易懂的C语言视频教程 2、30分钟彻底学会C语言指针视频教程 3、C语言内存管理精讲-高手必修课视频教程 4、C语言高级
SpringBoot定义全局统一业务异常
定义统一异常类:BusinessException.java package com.miaoying;
import lombok.Data;
@Data
public class BusinessException extends RuntimeException {
/**
* 错误码
*/
private Integer code;
/**
* 错误信息
*/
private String message;
Go语言 将秒转换为具体的时间
使用一个数值表示时间中的“秒”值,然后使用 resolveTime() 函数将传入的秒数转换为天、小时和分钟等时间单位。 package main
import "fmt"
/*
时间常量
*/
const (
//定义每分钟的秒数
SecondsPerMinute = 60
//定义每小时的秒数
SecondsPerHour = SecondsPerMinute * 60
//定义每天的秒数
SecondsPerDay = Secon
Python生成器介绍(原理+实践)
本篇博文讲解生成器,主要介绍2个方面,其一为原理,其二为完整代码运行及注解说明。 一.生成器原理 生成器却不同,它可以实现在迭代的同时生成元素。 也就是说,对于可以用某种算法推算得到的多个数据,生成器并不会一次性生成它们,而是什么时候需要,才什么时候生成。 不仅如此,生成器的创建方式也比迭代器简单很多,大体分为以下 2 步: 定义一个以 yield 关键字标识返回值的函数; 调用刚刚创建的函数,即可创建一个生成器; 举个例子: def intNum(): print("开始执行") for i
vue指令(7)v-on
理论知识 双向数据绑定中,数据有多个来源,包括后台业务数据,用户网页操作数据等。对于用户网页操作,vue提供了事件机制,对用户操作做出反应。 使用方式 v-on:标准事件。 标准实践包括点击(click)、焦点(focus)等。 实践
今日推荐
周排行