C语言编程杂项
C语言编程杂项
SongYuLong的博客
学无止境
展开
-
UTF-8编码
汉字的Unicode范围是0x4E00到0x9FA5,放在utf-8的编码里去就是由三个字节来组织,Unicode给出一个字符编码值域范围,定义了这个字码值是多少。6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx。可以看出此编码并非“标准”的UTF-8编码,因为其第一个字节的“有效编码”全为0,去除高位0后的编码仅有6位。5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx。十六进制:C0 B1。原创 2024-05-25 09:45:51 · 1679 阅读 · 0 评论 -
GCC内建函数C语言实现__builtin_popcountll,__builtin_ctzll,__buitlin_clzll
C语言编程有时需要用到__builtin_popcountll,__builtin_ctzll,__buitlin_clzll等GCC内建函数,这里给出了简单的实现代码,算法实现肯定不是最优的但可以使用,大端模式CPU没有验证!原创 2023-09-16 17:16:43 · 485 阅读 · 0 评论 -
音频PCM数据计算声音分贝值,实现简单VAD功能
计算音频数据PCM分贝值,计算公式:Lp=20∗Log10(Prms/Pref)dBL_p=20*Log_{10}(Prms/Pref)dBLp=20∗Log10(Prms/Pref)dBPrmsPrmsPrms:当前声音振幅值;PrefPrefPref:声音振幅最大值(即PCM数据表示的最大值);对于16bitsPCM数据,一个声音采样点为2个字节最大(216−1=655352^{16}-1=65535216−1=65535)我们对n个采样点数据求和然后取其平均值,作为Prms/PrefPrm原创 2022-06-24 11:32:22 · 2719 阅读 · 0 评论 -
UTF-8 字符编码长度计算
//utf8字符长度1-6,可以根据每个字符第一个字节判断整个字符长度://0xxxxxxx {0x00 ~ 0x7F ASCII 占1个字节}//110xxxxx 10xxxxxx {0xC0 ~ 0xDF UTF-8 占2个字节}//1110xxxx 10xxxxxx 10xxxxxx原创 2022-01-04 16:52:46 · 5615 阅读 · 0 评论 -
数据结构-线性表的链式表示
数据结构-线性表的链式表示线性链表线性链表特点:是用一组任意的存储单元(连续的或不连续的)存储线性表的数据元素。数据元素aia_iai的存储映像,称为节点。由数据域和指针域两部分组成。数据域中存储数据元素信息。指针域中存储直接后继的存储位置。nnn个节点(ai(1<=i<=n)的存储映像)(a_i(1<=i<=n)的存储映像)(ai(1<=i<=n)的存储映像)链结成一个链表,即为线性表。...原创 2021-10-27 11:40:47 · 244 阅读 · 0 评论 -
数据结构-线性表的顺序表示
线性表-顺序表示C代码代码目录结构:头文件sequence_list.h源文件sequence_list.cMakefile程序运行:C代码代码目录结构:.├── bin│ └── sequence_list├── Makefile└── src ├── main.c ├── sequence_list.c └── sequence_list.h头文件sequence_list.h#ifndef __SEQUENCE_LIST_H__#define __S原创 2021-10-26 17:18:22 · 139 阅读 · 0 评论 -
HSV颜色空间和RGB颜色空间相互转换C语言实现
HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。色调H用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°;饱和度S饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合原创 2021-05-24 18:07:15 · 5603 阅读 · 2 评论 -
checksum 校验和
checksum.c#include "stdio.h"#include "stdlib.h"/** * @brief CheckSum8计算 * @param cksum : 计算结果初始值,一般为0 * @param pBuffer : 数据缓存 * @param size : 数据长度 * @return CheckSum8计算结果*/unsigned short CheckSum8(unsigned int cksum, void *pBuffer, int size){原创 2021-04-07 14:01:17 · 1722 阅读 · 0 评论 -
重力感应、陀螺仪相关算法
rx,ry,rz为弧度值,x,y,z为重力感应值;rx = atan(x / sqrt(yy + zz)) 180/3.1415926ry = atan(y / sqrt(xx + zz)) 180/3.1415926rz = atan(z / sqrt(xx + yy)) *180/3.1415926原创 2020-03-09 11:28:46 · 1819 阅读 · 1 评论 -
C 指向二维数组的指针定义
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdbool.h>#include <stddef.h>#define PATH1 "/tmp/dataadd/mp3"#define PATH2 "/tmp/gotu/mp3"#d原创 2018-09-19 17:28:12 · 2567 阅读 · 0 评论 -
Linux cmake使用笔记
CMake:All problems in computer science can be solved by another level of indirection. cmake会根据cmake-language编写的 CMakeLists.txt 或.cmake后缀文件编译自动生成MakefileCMake使用流程:在 linux 平台下使用 CMake 生成 Makefile...原创 2018-09-06 12:01:16 · 835 阅读 · 0 评论 -
C语言printf输出输出数据类型,字体颜色等
设定printf输出字体颜色 终端字符的颜色是用转义序列进行控制,是文本模式下的系统显示功能,和具体的语言无关。 转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。一)格式是: \033[显示方式;前景色;背景色m 1)显示方式:0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非原创 2017-11-25 11:19:47 · 2391 阅读 · 0 评论 -
C语言 编译错误处理
error: storage class specified for parameter `_s32LedFlashLightTimerId’ 相关函数声明少了后面的分号。原创 2017-07-22 11:44:27 · 419 阅读 · 0 评论 -
C语言数据类型及值域
C语言数据类型及值域:原创 2017-07-29 18:25:06 · 2940 阅读 · 0 评论