- 博客(64)
- 资源 (2)
- 收藏
- 关注
原创 大小端理解
在介绍大小端之前,需要区分两个概念,数据表示和数据存储。数据表示计算机底层的数据都是二进制数据位0和1,8个bit组成一个字节,而字节是计算机处理的最小单元,每一个存储地址单元会存储一个字节,连续的的多个存储单元可以存储一个字和双字,具体取决于OS的位宽,见表1;对于多个字节的字和双字本身,就存在符号位、高低数据位的概念,见表2和图1;系统类型字(Word)的字节数双字(Double Word)的字节数16 位系统2432 位系统4864 位系统816表1系统类型符号位。
2025-01-10 00:37:11
1048
原创 UTF-8和Unicode转换
要说utf-8,就要先大概说一下它的大哥----“unicode"。基本的ASCII定义了128个字符,从0x00-0x7f,即使后面扩展的ASCII也只能表示256个字符,即0x00-0xff。这些字符表示英文是足够了,但是对于其他语言就显得捉襟见肘了,例如咱们的汉字。于是我们就用2个字符来表示汉字了。但后来2个字符也不够了,就慢慢拓展到3个字符。美国也意思到需要一种表示全世界字符的标准,于是,unicode就这么诞生了。unicode 规定了全球所有字符统一在一个集合,集合里面的元素互不相同。
2025-01-08 01:24:56
1133
原创 git理解记录
git作为分布式版本控制系统,开源且免费,相比svn集中式版本控制系统存在速度快(HEAD指针指向某次commit实体),离线式(没有网也可以commit),拥有多个完整独立的分支(不同用户本地clone的仓库包含完整记录)。git中,本地分支branch,远程分支remote branch,标签tag都是指向一个commit实体的指针,它们存在于.git/refs/xx中。项目开发中,某个关键功能实现,为了后续功能不会影响此功能,可以打一个标签,方便后续进行版本控制,找到之前的关键好的功能。
2025-01-05 19:04:53
876
原创 tftp环境搭建
tftp(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为 69。tftp协议在uboot、bash环境都可以支持,常见的服务端是 windows 本地环境和 linux服务器。
2024-09-09 01:17:00
1227
原创 字符编码转换
计算机可以识别并进行运算的只有0和1,世界上各种语言组成又是各不相同的,如何让这些文字可以被正常显示呢?当前的通用方案是:全部按照一种约定好的长度字节进行编码,如使用2个字节,同时建立一套2个字节的码表,把识别到的字符值去码表查找。其中,约定的长度可以定长的(gb2312和gbk),也可以是变长的(utf-8字符编码解决的也就是按照一种约定的长度解析字节流,然后在一个事先建立好的mapping中去查找所代表的的字符。
2024-09-07 22:43:31
908
原创 RAW、RGB 、YUV三种图像格式理解
4:1:1:Y 分量的采样比例为 1:1,U、V 分量的采样比例为 1:4,即在水平方向上每四个 Y 像素对应一个 UV 像素,垂直方向上不进行压缩,在一些比较老旧的视频编解码标准中可能会使用。4:2:2:Y 分量的采样比例为 1:1,U、V 分量的采样比例为 1:2,即在水平方向上每两个 Y 像素对应一个 UV 像素,垂直方向上不进行压缩,可支持更多的压缩算法和更高的编码效率。Planar:将 Y、U、V 三个分量单独存放在不同的内存区域中,每个分量都是独立的一维数组,三个数组都存储着相同的宽度和高度。
2023-05-28 14:31:59
6440
1
原创 ldd 脚本分析
本文介绍了ldd指令的源码位置以及查看方法;本文分析了ldd脚本文件的实际执行流程;本文介绍了在交叉编译环境下移植ldd指令的方法。
2023-05-27 22:23:55
1521
原创 gcc确认编译器默认头文件
在进行开源库编译的时候,有时候使用的头文件并不在当前目录下,而是查找默认头文件位置。如果默认位置查找不到,会编译报错。这时候,就要确认,对应头文件的指令有没有进行安装,一般安装完之后,都会在或者中添加对应的头文件。
2023-05-21 22:45:21
1487
2
原创 Linux中PATH、 LIBRARY_PATH、 LD_LIBRARY_PATH
PATH和分别负责可执行文件、库文件编译时和运行时的路径搜索任务。这些环境变量可以通过export命令来修改,向环境变量中添加新路径(比如上面的示例),或者移除已有路径。环境变量那些事儿。
2023-05-20 21:29:29
1986
原创 linux动态库版本控制
innkname: libpng16.so`和`soname: lib16.so.16`都是指向`realname: lib16png.so.16.39.0`的软链接,链接时使用 linnkname,ld链接器会根据linkname指向的realname–>lib16png.so.16.39.0的文件头中找到实际的soname名字 `lib16.so.16`写入到 实际生成的共享库的头部。
2023-05-20 20:08:23
991
原创 ./configure编译使用 --host、--target 和 --build 选项进行配置
--build、--host和--target选项含义
2023-05-14 00:06:47
5716
1
原创 python内置对象之字符串之基本介绍
文章目录1. 前言2. bytes和str的区别3. 常见字符串常量以及表达式4. 转义序列raw字符串–抑制转义5.多行字符串表示6.规划1. 前言字符串是标编程语言中表示文本的数据类型,存储上类似于字符数组,每一个字符元素都可以进行 提取用来操作。从存储的角度来说,字符串表示的是对应长度的ASCII字符的集合,对于任何语言来说都是一样的。C原因中使用char []类型表示字符串,C++和Java使用string表示字符串,与之对应的存在诸多字符串操作函数。现在的python3使用unicode文本
2022-04-17 23:53:08
728
原创 pyhton对象类型 之 数字
contents前言python基本内置对象数字类型总结前言程序,是由数据结构+算法构成,简单的说就是让算法去处理各种数据结构对应的结构对象,就好比食材以及厨具的关系。无论是动态语言还是静态语言,从本质上说都可以如此理解。因此,对象是最为基本的存在。python程序从上到下分解如下:模块–>语句–>表达式–>对象。python基本内置对象一门强大的语言包含诸多内置对象,我们可以直接使用,必要时可以自己根据内置对象创建自己需求的对象。python部分内置对象如下:内
2022-04-10 11:52:21
1121
1
原创 python学习之 “__name__”
文章目录python学习之 “*\_\_name\_\_*”前言python 文件执行方式\_\__name\_\__变量举例总结python学习之 “__name__”前言初学python的时候,了解到python作为脚本语言,需要依赖解释器进行解释,和shell有很多类似的地方。shell脚本有4种执行方式,参见下表,那么python文件有多少种执行方式呢?带着这个疑问,就有了本篇文章。执行方式举例(/home/zhonglai/zl.sh为例)当前路径执行./zl.s
2022-04-09 12:45:31
829
1
原创 环境变量那些事儿
目录环境变量的那些事儿前言环境变量分类交互式、非交互式,登录式、非登录式Shell配置文件参考环境变量的那些事儿前言经常遇到在编译相关库或者可执行文件的时候,显示相关库或者其他 依赖找不到,可是我的库或者依赖就在某个路径下呀,使用find指令还能搜到呢。其实问题的原因就在于机器它不那么儿“聪明”,它不知道你实际的路径,就如同是你有一个非常听话的孩子,你只告诉他红薯,他不会去吃土豆一样。环境变量分类在windows下,我们在配置环境变量的时候,会看到用户变量以及系统变量;在Linux下,也有同
2022-04-08 00:57:03
837
原创 带版本号动态库
背景:在实际开发中,大部分链接使用的动态库都是.so后缀的(linux系统),但偶尔也会遇到带有版本号的动态库,如libGL.so.1.7.0,但是实际链接时使用的动态库是libGL.so ,因此此时就需要我们对其进行处理。查看所需链接动态库实际的路径find / -name libGL.so*查看系统环境变量路径# 方法 1printenv | grep PATH# 方法 2export | grep PATH建立软链接(把 1 搜索到的实际库链接到 2 的可用路径.
2022-04-03 21:20:01
923
原创 Ubuntu 16.04用户密码忘记重置过程记录
文章目录背景重置过程建议背景学生时代适应使用VMARE 装了ubuntu 16.04进行学习Linux,后来熟练后使用学生优惠买了台阿里云服务器,后续工作了大部分的操作都在阿里云上进行。最近,阿里云服务器到期了,不打算续费后,打算继续使用回虚拟机,然后就发现root密码死活输入的不对,在度娘上找的一些方法也不管用,后来一度想重装系统,考虑到许多的配置以及一些软件需要重新下载。纠结了2个小时,还是在度娘的指导下完成了密码重置。特记录中间遇到的坑点,与大家一起分享。重置过程度娘方法分析# 情景
2021-05-17 01:24:43
349
原创 ARM数据处理指令
文章目录ARM数据处理指令(一)1.数据传送指令2.算术逻辑运算指令3.比较指令ARM数据处理指令(一)1.数据传送指令MOV 数据传送指令.将8 位图立即数或寄存器(operant2)传送到目标寄存器Rd,可用于移位运算等操作.指令格式如下:MOV{cond}{S} Rd,operand2MOV 指令举例如下:MOV R1#0x10 ;R1=0x10MOV R0,R1 ;R0=R1MOVS R3,R1,LSL #2 ;R3=R1<<2,并影响标志位MOV PC,LR ;PC=LR ,子
2020-05-28 16:54:53
876
原创 shell脚本学习(一)
shell脚本学习(一)1. whatshell脚本就是一个包含一系列命令的文件。shell 读取这个文件,然后执行文件中的所有命令,就如同这些命令直接被输入到了命令行一样。2. format注释 --> #shebang -->#!–>告诉操作系统将执行此脚本所有的解释器的名字3. 可执行权限脚本常用的权限为 777 -->保证每个人都可以执行此脚本700 -->只有root可以执行此脚本4.变量定义 + 初始化 + 赋值 + 引用类
2020-05-17 16:45:49
335
原创 shell脚本条件判读的常识
shell脚本条件判读的常识1. 常见条件判断if [[ $REPLY =~ ^[0-3]$ ]]then commandelse commandfi2.常识符号描述$REPLYREPLY是一个变量,$REPLY表示读取变量的值=~正则匹配,用来判断符号左右两侧参数是否匹配^行首,一行之中第一个字符之前$行尾,一行之中最后一个字符之后^$表示空行[0-3]0~3之中的任意一个数字...
2020-05-17 16:44:57
282
原创 Makefile常用函数
文章目录Makefile常用函数1. foreach函数2. filter函数3. filter-out函数4. Wildcard函数5. patsubst函数6. notdir函数7. addsuffix函数Makefile常用函数1. foreach函数此函数使用循环操作,是仿照Unix标准shell的for语句;语法$(foreach <var>,<list>,<text>)流程将参数列表的单词逐一取出将取出的单词放到指定的变量之
2020-05-17 16:42:47
315
原创 硬链接 + 符号链接
文章目录硬链接 + 符号链接1. 概述2. 硬链接3. 符号链接 -->软链接4. 区别5. 总结硬链接 + 符号链接1. 概述Linux下的文件是通过索引节点(inode)来找到文件数据区块block,进而操作具体文件的。如下图,inode节点中记录4个block区块2 + 7 + 13 + 15,通过inode节点就可以找到文件数据区块了。2. 硬链接硬链接可以认为是一个指针,这个指针指向文件索引几点inode,系统不会为硬链接分配inode节点。每次添加一个硬链接,文件的链接
2020-05-16 14:55:46
411
原创 shell 简单命令使用
1. 简单命令使用显示系统当前时间和日期 --> date显示当前月份的日历 --> cal查看磁盘剩余空间 -->df显示空闲内存的数量 --> free关闭终端 --> exitssh 连接,运行此命令后会下线幕后控制台在图形桌面中,默认是有几个虚拟终端打开着 --> ctrl + alt + F1~F6 访问返回图形桌面 --> alt + F72. cd 有关的快捷键快捷键描述
2020-05-16 11:59:39
370
原创 stm32启动文件浅析(二)
stm32启动文件浅析(二)1. 启动文件使用ARM汇编指令汇总指令功能EQU伪指令,为一个常量取一个名称,类似于C语言中的 #defineAREA伪指令,定义一个新的代码段或数据段(ARM 汇编程序采用分段设计,一个ARM源程序至少包含一个代码段,大的程序可以包含多个代码段和数据段)SPACE分配一块内存单元,并用 0 初始化伪指令格式: {label}...
2020-04-04 23:51:20
637
原创 stm32启动文件浅析(一)
stm32启动文件浅析(一)1.概述最近在学习Linux系统移植的时候,在bootloader移植篇章的时候,了解到ARM 架构的单片机也有类似的bootloader,只不过是ST公司帮我们写好了,叫做启动文件。恍然,于是就来看看这个启动文件。2.stm32f10x芯片简介ST公司提供了3种启动文件,详见下表:启动文件对应芯片类型flash容量startup...
2020-04-04 23:47:32
300
原创 普通类型和类类型之间的转换
普通类型和类类型之间的转换文章目录普通类型和类类型之间的转换1.普通类型——>类类型explicit 关键字2. 类类型——>普通类型类型转换函数类类型之间的转换1.普通类型——>类类型问题:假如把一个 int 类型转换为 类类型,有什么办法呢?下面的直接转换是错误的:#include <iostream>using namespace std;cl...
2020-03-28 00:07:59
957
原创 c 语言数据类型的隐式转换
c 语言数据类型的隐式转换 + 数据溢出文章目录c 语言数据类型的隐式转换 + 数据溢出1. C语言的4种隐式类型转换2. 数据的溢出1. C语言的4种隐式类型转换情形转换情况算术运算低类型转换为高类型赋值表达式赋值符号右边的类型转换为左边的类型函数调用实参转换为形参的类型函数返回return 表达式的类型转换为返回值类型算术运算的自动转...
2020-03-27 21:49:59
446
原创 Qt消息模型
文章目录Qt消息模型1. GUI 消息驱动事件模型2. 信号与槽2.1 问题2.2 Qt的解决方案Qt的核心 ——QObject::connect 函数Qt 的"新"关键字自定义槽Qt消息模型1. GUI 消息驱动事件模型Qt 封装了具体操作系统的消息模型(跨平台)Qt遵循经典GUI消息驱动事件模型[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 GUI ...
2020-03-25 21:07:35
238
原创 string类的疑问
string类的疑问与思考请看下面代码:void code(){ string s = "12345"; const char* p = s.c_str(); cout << p << endl; s.append("abcde"); cout << p << endl; /...
2020-03-24 23:28:59
116
原创 C++标准库的认识
c++ 标准库认识的图示名称描述C++ 扩展语法模块 编译器扩展库编译器厂商决定,不同编译器不同C 语言兼容库非 C 库,与 C 库头文件名相同,编译器厂商为了推广 C++ 编译器而增加,可以无缝编译 C 文件C++ 标准库 C 兼容模块与原 C 库函数功能相同 如<cstdio> <cmath> <cstring>...
2020-03-23 14:38:36
200
原创 友元函数
文章目录友元函数1. 友元的设计目的2. 友元的概念3. 友元的用法4. 友元的用法5. 注意事项6. 参考友元函数1. 友元的设计目的C ++ 天生的职责就是完全的兼顾 C 语言;C 语言可以使用指针访问结构体里面的成员;C++ 由于类的封装性使得类外不能访问类内成员;友元的设计是兼顾C语言的高效2. 友元的概念友元是 C++ 的一种关系友元关系发生在(函数–>类)...
2020-03-22 17:51:53
191
原创 gcc 编译命令
文章目录gcc 编译命令gcc 编译命令预处理# 直接输出gcc -E test.c -o test.i# 重定向输出gcc -E test.c > test.i编译生成汇编代码gcc -S test.i -o test.s汇编器生成可重定位目标文件gcc -c test.s -o test.o链接器生成可执行目标文件gcc test.o -o ...
2020-03-21 18:15:45
204
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人