杂七杂八的知识
旋转矩阵 私网IP只要 IP 落在下面任意区间,就是私网 IP,其余为公网 IP: 1)A 类私网:10.0.0.0 /8范围:10.0.0.0 ~ 10.255.255.255 用途:大型企业、工厂、机房、校园、机器人内网 2)B 类私网:172.16.0.0 /12范围:172.16.0.0 ~ 172.31.255.255 注意:只有 172.16~172.31 才是私网,172.115、32255 都是公网 3)C 类私网:192.168.0.0 /16范围:192.168.0.0 ~ 192.168.255.255 用途:家用路由器最常见 额外特殊保留地址(不属于公网,也不能上网) 本地回环:127.0.0.0/8(127.x.x.x,本机内部通信) 链路本地地址:169.254.0.0/16(电脑自动获取失败时分配,无法跨设备上网) 组播、保留测试段:224~255 开头,日常几乎遇不到 二、快速判断步骤(口算就能判断) 把 IP 拆成四段数字 a.b.c.d 分类判断: 如果 a == 10 → 私网 如果 a == 172 且 ...
电脑配置
显示器:kuycon P10———2290 CPU:5700X———900 主板:华硕PRIME B550M-K———400 散热:瓦尔基里AQ125———64 网卡:AX210———60 内存:铭瑄,DDR4,3200,16gx2———880 电源:利民TR—GT650,650W———260 固态:铠侠SD10———852 显卡: 机箱:爱国者JV13+三个风扇———136
base64
什么是base64Base64 是一种把二进制数据转换成纯文本字符串的编码方式,它能让图片、文件、特殊字符这些 “非文本数据”,安全地在文本环境(比如 URL、邮件、JSON、终端)里传输和存储。 工作原理: 把任意数据(比如图片、字符串)当成二进制字节流。 每 3 个字节(24 位)拆成 4 个 6 位的小段。 每个小段对应 Base64 表中的 1 个字符(A-Z、a-z、0-9、+、/,共 64 个字符,所以叫 Base64)。 不足 3 字节的部分用 = 补全,保证长度是 4 的倍数。 举个例子: 字符串 HelloWorld(不带换行)编码后是 SGVsbG9Xb3JsZAo=,你解码它,就能还原回原来的字符串。 在macos中的terminal中,使用echo命令即可演示。 12echo "HelloWorld" | base64SGVsbG9Xb3JsZAo= 其中|是管道符号,他把左边的结果作为右边的输入结果。 echo:回声,把右边的内容打印到终端上。 12echo "SGVsbG9Xb3JsZA==" ...
可得性启发式(availability heuristic)
K在单词的首位置和第三个位置出现的频率先说结论,K在第三个位置出现的频率远大于首位置,如ask,make,take,like,bike,cake等。 但很多人都会觉得K在首位置出现的频率要高,因为我们的大脑更容易检索和回忆起某个字母开头的单词,如keep,know,key,kitchen等。 这种认知偏差被称为“可得性启发式”(availability heuristic)。 但从真正的统计数据来看: 以k为第三个字母的英文单词数量是k为首字母的英文单词数量的2-3倍。 所以,虽然我们在脑海中能脱口而出很多k开头的单词,但在英语词汇中的实际分布中,k更多地隐藏在单词的中间位置。 图书管理员与农民的例子假设有个叫史蒂夫的人,邻居这样描述他: “史蒂夫非常腼腆,少言寡语,乐于助人,但对他人或现实世界没什么兴趣。他性情温和,干净利落,做事井然有序,非常关注细节。” 现在请问:史蒂夫更有可能是一名图书管理员,还是一名农民? 🧠 你的直觉(系统1)会怎么想?绝大多数人的第一反应都是:图书管理员。 这是因为史蒂夫的性格特征(内向、爱整洁、注重细节)与我们脑海中“图书管理员”的刻板印象高度吻...
git_bush
MinGW64MINGW64 是 Minimalist GNU for Windows (64-bit) 的缩写。 本质:它不是一个编译器,而是一个软件环境。它把 GNU 的开发工具(如 GCC 编译器、Make 工具)和 Bourne Shell(一种 Linux 命令行解释器)移植到了 Windows 上。 作用:它让你在 Windows 上也能使用像 ls, cd, grep, make 这样原本属于 Linux/Unix 系统的命令,而不需要安装虚拟机或双系统。 Git_Bush简单来说,Git_Bash 就是让你在 Windows 上也能像用 Linux 一样愉快地敲命令行(Shell:外壳)的工具。 底层核心正是基于 MinGW64 构建的。 技术原理:Git Bash 本质上是一个轻量级的 POSIX 兼容层。为了让 Windows 能听懂 Linux 的指令,它需要把 Linux 的指令“翻译”成 Windows 能听懂的。 底层依赖:它使用了 MinGW-w64(Minimalist GNU for Windows)项目提供的工具链。 Bash:...
Clion配置STM32F103开发环境
构建系统层次CMake/Make{CMake——make工具——编译器} 写makefile文件,然后用mingw32-make工具执行makefile文件来实现编译,这样对于大型,文件很多的工程就不用手动去gcc编译每每一个文件了。 但makefile文件的格式太晦涩难懂,不太好写,所以人们就想能不能模版化的生成makefile文件,所以出现了cmake。我们只要写cmakelist文件,然后把cmakelist文件丢给cmake,cmake就会生成makefile文件,然后再把makefile文件丢给mingw32-make工具,就可以执行编译了。编译则是调用本机 ARM-GCC 执行编译链接。 NinjaNinja 是一个专注于速度的小型构建系统,是输入第二层Make工具中的一种。 mingw32-make: 特点:历史悠久,功能强大,语法(Makefile)相对复杂,人为编写容易出错。 速度:在大型项目中,解析 Makefile 和启动编译任务的速度相对较慢。 Ninja: 特点:设计极简,专为机器生成(而非人类手写)而优化。它的语法非常枯燥但解析速...
MATLAB用法
矩阵操作12345A=[1 2 3 ; 4 5 6 ; 7 8 9]B=A’ %代表A的转制C=A(:) %把矩阵输出成一长列D=inv(A) %对A求逆,但A必须是方阵,F=det(A) %求A的行列式的值,但A必须是方阵,可以用来检验A矩阵可不可逆,因为行列式值为0的矩阵无逆矩阵。 多维矩阵1234567891011C=zeros(5,4,3)%% 生成一个3维矩阵,其中每一维都是5行4列的0矩阵C(:,:,1)=rand(5,4)%% 在第一维矩阵随机生成范围在0-1的一个5行4列的矩阵E(:,:,3)=randi([iMin,iMax]5,4)%% 在第三维矩阵随机生成一个5行4列的整数矩阵,其中最大值为iMax,最小值为iMinE(:,:,2)=randn(5,4)%% 在第二维矩阵随机生成一个5行4列,符合标准正态分布(均值为0,方差为1)的随机矩阵 A=1:2:91A=1:2:9 输出1 3 5 7 9,中间的2是步长 repmat ones zeros1234B=eye(3); % 生成一个3阶单位阵C=repmat...
macOS
homebrew12brew update 更新homebrewbrew install --cask APP 安装图形化应用 显示/隐藏文件夹command+shift+"."(句号键)能够显示或隐藏文件夹中的隐藏文件。 多窗口findercommand+n
C语言知识
GCCGCC是一个编译器,可以将C语言代码编写为机器码。 支持C/C++,Go,Fortran等语言。 支持MacOS,Windows,Linux等平台。 1gcc main.c -o main 上述代码:将main编译成一个名字叫main的可执行程序。 %d代表数值,%p代表地址。指针*一级指针指针,比如定义一个指针变量,那个这个指针变量代表的就是另一个变量的地址。 比如: 12345678int main(){ int a=10; int *b=&a; printf("a=%d"\n,a); printf("b=%p"\n,b); printf("*b=%d"\n,*b); return 0;} 打印出的效果: a=10,代表数值。 b=ox16db88b58,代表地址。 *b=10,这里因为b本身就是指针变量, *b是解引用指针,他可以获取b指针指向的那块内存地址里存储的值。 **二级指针12int **c=&b;printf(&q...
stm32编写
RCC: reset and clock control 复位和时钟控制配置系统时钟,开启/关闭各个外设的时钟电源。 一般首要操作就是通过RCC去打开相应外设的时钟,比如: 1RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); 通过RCC打开APB2总线外设的GPIOC的时钟,使他开启(ENABLE)。 GPIO_InitTypeDef 结构体对GPIO进行设置/初始化之前,要先定义一个结构体,这个模板里规定了:如果你想配置 GPIO,你必须提供 模式、速度 和 引脚号 这三样东西。 1234GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_PP;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;GPIO_InitStryct.GPIO_Speed=GPIO_Speed_50MHz; 然后再去对GPIO进行配置 1GPIO_InitStryct.GPIO_Speed=GPIO_Speed_50...










