2023春播-假植
0427-假植
date: 2023/4/27
番茄苗基本上都有4片真叶啦,蜀葵也长得育苗块装不下了,观察根部都从育苗块种钻出来了,是时候假植了,先将花花们种到稍小一点的种植盆,等他们长得更大一下再地栽或定植到加仑盆中。
btw 满天星其实还可以再等等,没到假植的时候,不过懒得再忙活第二次啦,就干脆一起移了
假植前:
假植后:
2023春播-幼苗记录
0419-幼苗记录
date: 2023/4/19
距离上次记录已有8天,这8天天气都比较不错,阳光充足,温度稍高,满天星、蜀葵、两种番茄都长势良好,紫罗兰依然只有一点点幼芽没彻底出来,棉花则毫无动静,估计要明年再来了。
2023春播-番茄、紫罗兰发芽
番茄、紫罗兰发芽
date: 2023/4/11
5天不见,小苗们长势喜人,除了棉花也都有更多的发芽
蜀葵和满天星开始长真叶,露台番茄和金太阳番茄也都有发芽,紫罗兰孤零零有一颗露头了,棉花还迟迟没有动静
来个大合影
2023春播-满天星、蜀葵发芽
满天星、蜀葵发芽如题,2023.4.6,满天星和蜀葵开始发芽啦~
2023春播
2023春播
又是一年春天到来,3月的成都还略显寒冷,4月则开始逐渐变暖,最近几天最高气温都在20度以上,最低气温也在10度以上,未来可以预见的还会持续变暖,因此选在了4月的第一个周末开始播种
[toc]
播种品类棉花
如果可以种出雪白的棉花,做成干花裱在相框中,会不会很好看呢?
附:棉花种子购买链接
“吉普赛”白色满天星
久种不厌的满天星,前几年的种植虽然有开花但最后都枯败了,可能是盛夏气温高阳光太剧烈被晒伤了,今天夏天最热的时候记得把满天星放到阴凉的地方。
附:种子购买链接
“金太阳”番茄
买了“金太阳”番茄的非杂交品种,种出来的后可以留种,不知道好不好吃,好吃的话可以给大家分享种子
附:种子购买链接
露台番茄
除了金太阳传家宝番茄,还购入了一款杂交品种的露台番茄,据说超级甜
附: 种子购买链接
紫罗兰
看到有紫罗兰的切花非常好看,干脆自己种吧,可惜没有找到白花品种,紫花凑合看
附:种子购买链接
重瓣蜀葵
蜀葵也是第一年种,还不知道花儿好不好看,拭目以待
附:种子购买链接
播种过程
为了省事,今年依然没有催芽,直接播种到育苗块里的,这次的育苗块 ...
实现一个H.264解码器——1_基础知识
[toc]
1_基础知识前言学习梳理源自B站视频
https://www.bilibili.com/video/BV1b3411X7eE/?spm_id_from=333.999.0.0&vd_source=c385e6592167e9e48e3dd8f1b317ef7e
感谢大佬的教学
H.264 / AVC
H.264和AVC本质上是同一套视频编码标准,只是不同组织对其命名不同
NaluNetwork Abstraction Layer Unit 网络抽象层单元
Nalu是组成H.264码流的最基本单元,一个H.264码流由无数Nalu组成。
H.264码流中没有音频,没有时间戳,只有图片本身的信息,把H.264码流和音频、时间戳等信息结合起来的叫封装器如MP4
两个特殊的NALU
H.264中有两个比较特殊的NALU,分别是SPS和PPS,其存放了解码一路H.264所必须的参数信息
1. SPS2. PPSNalu的两种封装格式
H.264码流的Nalu单元常见有两种封装格式
1. Annex-B由于这种写法位于ITU-T的H.264标准文档的附录B中 ...
sscanf
sscanf
int sscanf( const char *, const char *, …);
int sscanf(const char *buffer,const char *format,[argument ]…);
buffer存储的数据
format格式控制字符串
argument 选择性设定字符串
sscanf会从buffer里读进数据,依照format的格式将数据写入到argument里。
1#include <cstdio>
*亦可用于格式中, (即 %*d 和 %s) 加了星号 () 表示跳过此数据不读入. (也就是不把此数据读入参数中)
%[a-z] 表示匹配a到z中任意字符
%[aB’] 匹配a、B、’中一员
%[^a] 匹配非a的任意字符
控制字符 说明
%c 一个单一的字符
%d 一个十进制整数
%i 一个整数
%e, %f, %g 一个浮点数
%o 一个八进制数
%s 一个字符串
%x 一个十六进制数
%p 一个指针
%n 一个等于读取字符数量的整数
...
文件中八进制转中文
文件中八进制转中文
有的日志文件中的中文竟然是八进制,形如:
name:"\344\270\252\344\272\272\350\265\204\346\226\231\345\215\241"
为此写了个Python脚本通过引号识别将整个文本中的八进制转换成中文
环境
Python3
Code1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import chardetimport reimport sysimport urllib.parse# 返回content中从当前index开始的下两个引号"的indexdef get_next_two_quota(cur_index: int, content): quota1 = content.find("\"", cur_index) quota2 = content.find("\"", quota1 + ...
void*和NULL和nullptr的区别
void*和NULL和nullptr的区别在C语言中有如下定义
1#define NULL ((void*)0)
void* 是一个万金油,可以转换为任何其他指针,所以在这儿用值为0的void*表示空指针
然而在C++中定义如下
1234567#ifndef NULL #ifdef _cplusplus #define NULL 0 #else #define NULL ((void*)0) #endif#endif
在C++中,如果使用C++编译器,NULL将会被直接定义为0,如果使用C语言编译器才会延续((void*)0)的定义
在C++11中规定,nullptr用来表示((void*)0),而NULL只表示0
类型转换
类型转换const_cast
用于将const指针或饮用转换成非const
用法:123const int a = 10;int *b = const_cast<int *>(&a);*b = 20;
reinterpret_cast
重新解释类型,既不检查指向的内容,也不检查指针类型本身;但要求转换前后的类型所占用内存大小一致,否则将引发编译时错误。
很危险!!
用法12345678910int test(int i) { return 1;}int main() { // reinterpret_cast typedef int (*FucP)(); FucP fucP = reinterpret_cast<FucP>(&test);}
函数指针函数指针和其他指针一样定义之后使用之前也是需要初始化。
函数指针有两个用途:调用函数和做函数的参数
12345int (*fun)(int x,int y) //函数指针的定义fun = &Function ...