- 博客(10)
- 收藏
- 关注
原创 一些足以惊艳你同事的编程代码
在ASCII编码规则中,65~90为26个大写英文字母(A–Z),97~122号为26个小写英文字母(a–z),大写与小写在数值上相差32。一般而言,在编程时先判断字母是大写还是小写,根据转换规则,若是大写转小写则+32,若是小写转大写则-32。加减32其实都是改动的bit[5],对每一个数值只要(|0x20)就是变换为小写,(&~0x20)就是转换为大写,省去了判断的步骤。...
2022-07-30 19:16:07
1228
原创 Linux进程信号
kill命令可通过进程号(PID)给进程发送信号。默认情况下,kill命令会向命令行中列出的全部PID发送一个TERM的信号。要发送进程信号,你必须是进程的属主或是root用户。TERM信号会告诉进程可能的话就停止运行。但进程未必会相应,可能会忽略这个请求。你也可以这样写:kill -KILL PID 或 kill -9 PID 或 kill -s 9 PID。kill -s KILL PID 该命令会强制终止进程。上例命令可用来结束所有以http开头的进程。killall命令支持以进程名来结束进程。
2022-07-23 17:55:40
423
原创 形象解释缓冲(Buffer)与缓存(Cache)
以嗑瓜子为例,装有瓜子的袋子在距我座位两米的货架上,垃圾桶在距我座位三米的门口。若每次都是离开座位从货架的袋子中取出一颗瓜子,回到座位后吃掉,将产生的一颗瓜子壳丢到门口的垃圾桶,这也没啥不可以,只是会显得比较蠢。而如果,每次从货架的袋子里抓一把,垫纸上,再坐下来吃,这就叫应用了输入缓存技术,再将产生的瓜子壳先攒一堆,再一起过去扔,这就叫应用了输出缓存技术。由此看,缓冲技术有效缓解了对设备的频繁冲击,缓解存取数据(慢)与处理数据(快)速度不匹配的问题。...
2022-07-21 23:58:56
237
转载 【转载】C语言 sizeof深度解析
C语言的sizeof()之所以能分辨出数组和指针,是因为编译器在编译的时候当然知道哪个变量是数组和哪个变量是指针。当你使用sizeof()的时候,你首先应该知道sizeof()并不是一个函数,它是C语言的关键字,或者说是一个运算符,C语言程序不是在运行时才执行sizeof()的,而是在编译时就对sizeof()做了完整的处理。这么说可能有...
2022-07-07 11:36:03
998
1
原创 一图搞懂&str、str、*str的指向关系
当你在函数中运行到这行代码时unsigned char *str;系统会在栈中创建一个临时的指针变量str,为其分配一个地址,这个地址就是(&str),指令变量str 指向的地址就是 str , 指向的地址 存储的内容是 *str......
2022-07-07 00:03:31
3767
2
原创 char* 与 char[]的本质区别
当有下述两行代码时:unsigned char str1[] = {0x11, 0x22, 0x33, 0x44, 0x55};const unsigned char *str2 = “abcde”;1、strlen(str1)的长度是不确定的,取决于后面地址的数据何时为0x0,若*(str1 + 5) 为0x0,则strlen(str1)的值为5,若 *(str1 + 5) 不为0x0, *(str1 + 6) 为0x0,则strlen(str1)的值为6,依次类推。...............
2022-07-06 23:14:47
208
原创 模二运算,模二加减乘除
模二运算是一种特殊的二进制算法,与常规四则运算不同,模二运算不考虑进位与借位,多个二进制数进行模二相加或相减时,只需关心相同位上的相加减,不受前后位影响。
2022-07-03 23:17:38
4455
1
原创 一道非常著名的“反直觉”智力题--生存概率
一道非常著名的“反直觉”智力题: 1、 有100名编号分别为1,2,3......100的囚犯。 2、 每个囚犯的编号都写在一张纸条上。这100张纸条,被随机放入一个房间里的100个外观相同的盒子里。每个盒子里放一张纸条 3、 每个囚犯可以单独进入房间一次,任意查看50个盒子,看完后要将盒子盖上,不留下任何痕迹。如果他能恰好看到“自己的编号”,视为完成任务,需要立刻离开房间。......
2022-07-03 17:40:17
492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人