字符串和字节转换函数-python
字符串、字节、Hex
hex(int)
12345678def hex(*args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ """ Return the hexadecimal representation of an integer. >>> hex(12648430) '0xc0ffee' """ pass
B.hex()
12345678def hex(self): # real signature unknown; restored from __doc__ """ B.hex() -> string Create a string of hexadecimal numbers from a bytes object. Example: b& ...
windows系统常用cmd命令
windows系统常用cmd命令
参考视频教程:
合集·电脑cmd命令
1.ipconfig
ipconfig:显示IP地址信息
ipconfig /all:显示IP地址详细信息(包括DNS等)
ipconfig /all | findstr DNS:筛选关于DNS的信息(findstr用于查找特定字符)
ipconfig /release:释放所有接口IP地址(即断开网络无法上网)
ipconfig /release "WLAN":释放WLAN接口的IP地址
ipconfig /renew:重新获取IP地址(连接网络正常上网)
ipconfig /displaydns:显示DNS解析缓存结果(用于网络DNS故障排查)
ipconfig /displaydns | clip:复制DNS解析缓存结果到剪贴板中
ipconfig /flushdns:刷新DNS解析缓存
2.nslookup
nslookup www.baidu.com:显示解析该域名的DNS服务器地址信息及其对应IP地址
nslookup www.baidu.com 114.114.114.114: ...
《我的第一本算法书》阅读笔记
《我的第一本算法书》阅读学习笔记
https://www.ituring.com.cn/book/2464
注:这本书讲解比较简单和直观,并没有深入代码层面,排序部分的代码来源菜鸟教程
一、数据结构1.链表
基本链表、循环链表、双向链表
在链表中,数据一般都是分散存储于内存中的,无须存储在连续空间内
在链表中,数据的添加和删除较为方便,访问比较耗费时间(因为数据都是分散存储的)
在这里,我们把链表中的数据量记成n。访问数据时,我们需要从链表头部开始查找(线性查找),如果目标数据在链表最后的话,需要的时间就是O(n)。另外,添加数据只需要更改两个指针的指向,所以耗费的时间与n无关。如果已经到达了添加数据的位置,那么添加操作只需花费O(1)的时间。删除操作同理
2.数组
操作时间在内存的连续空间内
在数组中,访问数据十分简单,而添加和删除数据比较耗工夫
由于数据是存储在连续空间内的,所以每个数据的内存地址(在内存上的位置)都可以通过数组下标算出,我们也就可以借此直接访问目标数据(这叫作“随机访问”)
这里讲解一下对数组操作所花费的运行时间。假设数组中有n个数据,由于访问数据时使用的 ...
Cmake学习笔记
一、语法介绍
来源:从零开始详细介绍CMake
1.语法基本原则
变量使用${}方式获取值,但在IF控制语句中直接使用变量名
指令(参数1 参数2 …):参数使用圆括弧括起来,参数之间使用空格或分号分开
指令大小写无关,参数和变量大小写相关,推荐全部使用大写方式
SET(SRC_LIST main.cpp)与SET(SRC_LIST “main.cpp”)等价,但当源文件名中含有空格时必须加引号
2.基本关键词
PROJECT关键字
指定工程名字和支持语言,默认支持所有语言
PROJECT(HELLO) 指定工程名字且支持所有语言
PROJECT(HELLO CXX) 指定工程名字,支持C++
PROJECT(HELLO C CXX) 指定工程名字,支持C和C++
上面PROJECT关键字隐式定义了两个CMAKE变量:
12<projectname>_BINARY_DIR:上面的例子是HELLO_BINARY_DIR<projectname>_SOURCE_DIR:上面的例子是HELLO_SOURCE_DIR
MESSAGE关键 ...
Vim学习笔记
来源:Vim基础&高级技巧教学切合实际工作-第二期基础知识、基础操作
一、Vim模式
Normal模式(所有输入都当成命令):操作文本、定位和移动等
Insert模式(编辑器模式):文本编辑等
模式
进入方法
Normal模式
Esc进入Normal模式(Ctrl+[)
Insert模式
i进入Insert模式(o、O、a、A)
进入Normal模式推荐使用Ctrl+[,这样手可以不用离开主键区
进入Insert模式上述5种方法的区别:i在当前光标前面输入文本;a在当前光标后面输入文本;o在当前光标所在行下面新建一行进行输入;O在当前光标所在行上面一行新建一行进行输入;A在当前光标所在行末尾进行输入
1.Normal/Insert模式
方向类
操作
命令
上下左右方向
hjkl(左下上右)
跳转到对应行
LineNumber gg
页首(第一行)
gg
页尾(最后一行)
G
行首
0
行尾
$
下一个词组开头
w&W(小写w以字符和空格划分词组,大写W以空格划分词组)
下一个词组末尾 ...
HFS学习总结
HFS Learning Summary
Reference:
Filesystem Hierarchy Standard
一、Root FilesystemThe following directories, or symbolic links to directories, are required in /.
Directory
Description
bin
Essential command binaries
boot
Static files of the boot loader
dev
Device files
etc
Host-specific system configuration
lib
Essential shared libraries and kernel modules
media
Mount point for removable media
mnt
Mount point for mounting a filesystem temporarily
opt
Add-on application softwar ...
json学习笔记
来源:JSON 教程
一、JSON简介
轻量级的文本数据交换格式
二、JSON语法
JavaScript对象表示语法子集
数据在名称/值对中
数据由逗号 , 分隔
使用斜杆 \ 来转义字符
大括号 {} 保存对象
无序的名称/值对集合,名称/值使用逗号 , 分隔
一个对象以左大括号 { 开始, 右大括号 } 结束,每个名称(“键”)后跟一个冒号 :
中括号 [] 保存数组,数组可以包含多个对象
值的有序集合,值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array),它们可以嵌套
一个数组以左中括号 [ 开始, 右中括号 ] 结束,值之间使用逗号 , 分隔
JSON名称/值对
12345key : value例如:"name" : "thee"等价于:name = "thee"
三、JSON对象
JSON 对象使用在大括号 {…} 中书写。对象可以包含多个 key/value(键/值)对
key 必须 ...
《linux命令行大全》阅读笔记
这篇文章是《Linux命令行大全》的阅读笔记,仅供参考,更多详细内容请参见该书。
1.符号链接
软链接(item可以是一个文件或目录)
1$ ln -s item link
一个符号链接指向一个文件,而且这个符号链接本身与其它的符号链接几乎没有区别。例如,如果我们往一个符号链接里面写入东西,那么相关联的文件也被写入。然而,当删除一个符号链接时,只有这个链接被删除,而不是文件自身。如果先于符号链接删除文件,这个链接仍然存在,但是不指向任何东西。在这种情况下,这个链接被称为坏链接
符号链接文件的长度是目标文件字符串所包含的字符数,而不是符号链接所指向的文件长度
链接所指向的文件长度
硬链接(一个文件至少有一个硬链接)
1$ ln file link
硬链接的局限性
一个硬链接不能关联它所在文件系统之外的文件,也就是说一个链接不能关联与链接本身不在同一个磁盘分区上的文件(不同的物理磁盘)
一个硬链接不能关联一个目录
一个硬链接和文件本身没有什么区别。不像符号链接,当你列出一个包含硬链接的目录内容时,你会看到没有特殊的链接指示说明。当一个硬链接被删除时,这个链接被 ...
C/C++之socket编程
参考文章:
1.socket编程基础知识
2.socket编程UDP程序
3.socket编程TCP程序
4.unix domain socket 编程
5.Unix Domain Socket 实现原理
6.Linux C Socket UDP编程详解及实例分享
7.Linux编程之UDP SOCKET全攻略
8.udp 超时设置(select函数的一种用法)
前言
socket通信本质上就是两个进程间的通信(跨网络的进程间通信)
IP地址能够唯一标识公网内的一台主机,而端口号能够唯一标识一台主机上的一个进程,因此IP地址+端口号就能够唯一标识网络上的某一台主机的某一个进程
或者这样说:IP地址就像是某个快递点的位置,端口号就是其中快递包裹的编号,而进程是收或寄快递的人
TCP协议:面向连接、可靠、基于字节流的传输层通信协议
UDP协议:无需建立连接的、不可靠的、面向数据报的传输层通信协议
计算机存储策略:
大端模式:数据高字节保存到内存低字节,数据低字节保存到内存高字节(大对小,小对大/==低地址高字节==) -> 网络数据流采用大端模式
小端模式:数据高字节保存 ...
计算机之静态 arp 绑定
参考文章:
在 Windows 上 arp 绑定
arp 绑定网关
linux arp 的操作解释,永久生效的方法
计算机上设置静态arp的方式不止一种,以下只介绍比较常用的两种方式:
方式一:arp -s绑定,但是只能实现临时静态arp绑定,系统重启后失效 (绑定静态arp后,使用命令arp -a查看,对应绑定的静态arp会有PERM标识,表示静态arp,即permanent,永久的)
方式二:netsh绑定,可实现永久arp绑定,系统重启后也不会失效,且能指定网络接口
1. arp -s 方式 (windows 和 linux 系统均可使用)
查看windows上的arp表
1$ arp -a
绑定静态arp
12$ arp -s ip mac # 第一个参数为点十分进制 ip 地址,第二个参数为需要绑定的 mac 地址$ arp -s 192.168.1.81 11-22-33-44-55-66 # 示例
删除静态绑定
12$ arp -d ip$ arp -d 192.168.1.81 # 示例
2. netsh 方式(仅适用于 windows ...