杂七杂八
1
∧ 为与,∨ 为或,¬为非
2
在绝大多数编程语言中,如果if、for、while等语句的内容中仅有一条语句,可以省略花括号。
注意:是一条语句,不是一行。
例
for (int k = 0; k < l; k++)
std::cout << a[k] << " ";
std::cout << std::endl;
该for只会执行”std::cout << a[k] << “ “;”这一条语句
3
XOR 异或运算在汇编中很常见,编译器经常用其来代替MOV EAX, 0。原因在于XOR只需要两个字节但对应的MOV指令却需要五个字节。
4
标志寄存器(Flag Register)是一个16位的寄存器,用于存储CPU运算的状态标志,例如进位标志、零标志、符号标志等。下面列出了x86架构CPU中的标志寄存器以及它们的含义:
标志位 | 中文名称 | 描述 |
---|---|---|
CF | 进位标志 | 当无符号整数加法或减法的结果超出了寄存器的宽度时,该标志位会被设置为1。CF=1表示有进位发生,CF=0表示无进位发生。 |
ZF | 零标志 | 当一个操作的结果为零时,该标志位会被设置为1。ZF=1表示结果为零,ZF=0表示结果不为零。 |
PF | 奇偶标志 | 当一个操作的结果中有偶数个二进制位为1时,该标志位会被设置为1。PF=1表示结果中有偶数个1,PF=0表示结果中有奇数个1。 |
AF | 调整标志 | 当一个二进制算术操作(例如加法或减法)中低4位产生了进位或借位时,该标志位会被设置为1。AF=1表示有进位或借位发生,AF=0表示无进位或借位发生。 |
ZF | 零标志 | 当一个操作的结果为零时,该标志位会被设置为1。ZF=1表示结果为零,ZF=0表示结果不为零。 |
SF | 符号标志 | 当一个操作的结果为负数时,该标志位会被设置为1。SF=1表示结果为负数,SF=0表示结果为非负数。 |
TF | 陷阱标志 | 该标志位用于单步调试,当TF=1时,CPU会在每个指令执行后暂停并等待调试器的命令。 |
IF | 中断标志 | 该标志位用于控制CPU是否响应中断请求。当IF=1时,CPU允许中断请求;当IF=0时,CPU禁止中断请求。 |
DF | 方向标志 | 该标志位用于控制字符串操作的方向,当DF=1时,字符串操作是从高地址向低地址进行的;当DF=0时,字符串操作是从低地址向高地址进行的。 |
OF | 溢出标志 | 当有符号整数加法或减法的结果超出了寄存器的宽度时,该标志位会被设置为1。OF=1表示有溢出发生,OF=0表示无溢出发生。 |
5
magic number: 直译为幻数,常用来标记文件及协议格式,很多文件都有其幻数标识来标志该文件的格式。
下面为部分常见幻数类型
文件类型 | 文件头 | 文件尾 |
---|---|---|
JPG | FF D8 FF E0 | FFD9 |
GIF | 47 49 46 38 | |
PSD | 38 42 50 53 | |
PNG | 89 50 4E 47 | AE 42 60 82 |
GIF | 47 49 46 38 | 00 3B |
BMP | 42 4D | |
TIFF | 49 49 2A 00 | |
ZIP | 50 4B 03 04 | 50 4B |
MS Word/Excel (xls.or.doc) | D0 CF 11 E0 | |
25 50 44 46 2D 31 2E | ||
RAR | 52 61 72 21 | |
XML | 3C 3F 78 6D 6C | |
HTML | 68 74 6D 6C 3E | |
EXE | 4D 5A |
注:有的文件没有文件头,比如 TXT。同时不同文件扩展名的 Magic Number 有可能相同,比如 APK 和 ZIP,因为 APK 本身就是以 ZIP 格式压缩的。
例图
另外:我们最初接触计算机时,就习惯把文件后缀叫做文件类型,文件后缀正确的叫法应该是文件扩展名(Filename Extension),它是早期操作系统用来标志文件格式的一种机制,更重要的作用是让系统决定运行该文件的应用。这是开发者和操作系统之间的一种约定,与文件的实际类型并没有绝对关系。 因此操作系统实际上靠magic number来识别文件的类型
6
域名
域名(Domain Name)是互联网上用于标识网站的名称。它由一个或多个部分组成,各部分之间用点号(.)分隔。域名结构是指域名的组成方式,即域名的各个部分所代表的含义。
顶级域名和二级域名是必选项,三级域名和四级域名则可以根据需要进行添加。
凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。
域名记录表
域名层级 | 意义 |
---|---|
顶级域名 (Top-Level Domain,简称TLD) | 代表不同类型的组织或实体,即用于划分类别 |
二级域名 (Second-Level Domain,简称SLD) | 通常用来表示特定主体或网站。 |
三级域名 (Third-Level Domain) | 通常用来进一步细分网站或提供更多的信息。 |
部分实例
顶级域名:
通用顶级域名后缀 :.com表示商业机构,.net表示网络组织,.org表示非营利组织
新通用顶级域名后缀 :.top顶级域名。.xyz通用性和多功能性。.shop商店或购物。.art艺术或创意。.ltd有限责任公司。.baby亲子、婴幼儿相关主题。.bio展示个人或组织的简历、传记或介绍信息。.city城市或城市相关的内容或服务。
国别域名 :us代表美国,.uk代表英国,.kr代表韩国,.kp代表光之国朝鲜,.cn代表中国,.jp代表日本,.de代表德国,.fr代表法国,.it代表意大利,.ru代表俄罗斯,.ca代表加拿大,.au代表澳大利亚
二级域名: bilibili.com表示bilibili公司的网站,google.com表示谷歌的网站
三级域名: 这是看雪kanxue.com,而bbs.kanxue.com是看雪的论坛网站
7
在 C++ 中,*#define ERROR_SUCCESS 0L是一种宏定义,通常用于表示操作成功的返回值。*
这里的宏定义将标识符ERROR_SUCCESS定义为常量值0L。这个常量通常用于函数返回值,以表示操作成功完成。例如,在某些 API 或库函数中,返回值为ERROR_SUCCESS表示函数执行成功,其他非零值可能表示不同类型的错误。
ERROR_SUCCESS means “no error” in WINAPI.
EEROR_SUCCESS
0(0X0)
the operation completed successfully.
8
你肯定见过NTFS的分区类型,NT的意思为New Technology;
- 标题: 杂七杂八
- 作者: 404joker404
- 创建于 : 2024-09-15 09:30:48
- 更新于 : 2024-10-06 17:39:58
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。