大端(Big Endian)与小端(Little Endian) 本文记录了计算机中存在的两种数据存储模式及其对网络编程的影响。 内存抽象 在较高层次上,可以把内存抽象成一个很大的数组。唯一不同的是,一个元素(
TCP连接的建立与释放 本文通过实际抓包验证了TCP连接建立与释放的方式。 关于计算机网络 我在大三上修了计算机网络这门课,这门课真是我大学最差的记忆之一。教授这门课的老师水平很低,以至于辅导员安排另一位老
C语言实现IPv6抓包程序 本文记录了如何借助libpcap实现一个简单的抓包程序。 准备 对于实现一个抓包程序,最重要的是熟悉每种协议。熟悉协议包括两部分:每个协议具体字段的意义和每个协议在C语言中对应的
笔试总结:LINE2018实习生(软件工程师) 2018LINE实习生笔试题总结。 今晚LINE和头条的笔试时间冲突,还是选了LINE,因为打算体验一次笔试答题。 简答题 第一题问的是中断是什么,为什么要有中
Vim的哲学 本文记录了我在现阶段对Vim的一些思考。 我用过的开发工具 回想起来,我大概是在大一的寒假快要结束的时候接触了编程语言,我还记得自己按照教程,用gcc编译并输出了HelloWorld。当时,我
笔试总结:携程2018实习生(安卓开发工程师) 时间:2017-4-11,19:00~21:00。 选择题 10个数学智力题,10个Android题。数学智力题花了半个钟头,感觉还是有几题没把握,结果没想到
Build Your Own Lisp中的闲言碎语 Build Your Own Lisp中的一些摘录。 前不久,读完了Build Your Own Lisp。作者用C语言写了一个简单的Lisp解释器,代码之精妙、设计之优雅确实让我受益匪浅! 不过,除了跟着作者写代码,
关于C/C++中指针自增运算符的思考 本文记录了C/C++中指针自增运算的一些微妙特性。 问题引入 C代码: #include <stdio.h> int main(int argc, char const* argv[]) { int a = 1, *p = &a; ++++p; ++p++; return 0; } C++代码: #include <bits/stdc++.h> int main(int argc, char const* argv[]) { int a = 1, *p = &a; ++++p; ++p++; return 0; } 编
踩坑记:LinuxMint18字体变为楷体的修复 本文记录了一次修复系统字体的经历。 起因 起因很奇怪,本来打算今天把动态规划算法好好研究一番,结果一大早起来发现中文输入法消失了!因为之前有次发生这种情况是
时间复杂度计算类题目两则 本文记录了两则具有代表性的算法复杂度计算题目。 题目1 分析以下代码的时间复杂度: for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { for (int k = 0; k < j; k++) { // operations } } } 注:以上代码只作示意,未详细