自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 算法--深入理解习算计系统(第三版)习题3.60

深入理解习算计系统习题3.60此题看课本中给出的汇编代码(实际我用的编译器并没有这么做)说明问题,第二行对xp可能为空的时候没有考虑.那么如何在xp为空的时候避免对*xp求值呢?答案就是避免求值long cread_alt(long *xp){ long c = 0; long *p = xp?xp:&c; return *p;}这样将避免了对*xp在第一步的求值,从而表面对空指针求值....

2021-07-06 13:38:59 198 1

原创 算法--ux>-1

算法--ux>-1在csapp中有个题目是这样的u代表无符号数x代表任何整数上述表达式在课堂中表述是永远不成立的.原因就在于-1会被转成无符号数也就是FFFFFF….FFFF,所以ux<=-1才是正确的表达.

2021-05-25 10:54:28 359

原创 算法--空间复杂度O(1)的快速排序

算法-空间复杂度大O1的快速排序不考虑占用空间的大小比较简单 $arr = [1,3,2,6,7,8,6,5,4,2,2,2,2,2,0,0,0,0,0,0,0,0,0];function q( $arr ){ //排除极限情况 $len = count($arr); if($len <= 1){ return $arr; } $mid = $arr[0]; $right = []; $left = []; for( $i = 1 ; $i <= $len-1 ;

2021-04-14 11:41:18 1930

原创 PHP源码分析-函数array_merge的”BUG”

PHP源码分析-函数array_merge的”BUG”首先来看段代码.<?php$a = [ '2' => 'a' , 'k' => 'g' ];$b = [ '6' => 'h' , 'd' => 's' ];$c = array_merge( $a , $b );$d = array_merge( $b , $a );var_dump( $c , $d );运行结果 array(4) { [0]=>

2020-12-04 11:51:14 381

原创 PHP源码分析-进制转换函数分析

PHP源码分析-进制转换函数分析Php的进制转换大概可以分为两个类1.其他进制转换十进制bindec 二进制转换十进制hexdec 十六进制转换十进制octdec 八进制转换十进制base_convert在任意进制之间转换数字2.十进制转换其他进制decbin 十进制转换为二进制dechex 十进制转换为十六进制decoct 十进制转换为八进制base_convert在任意进制之间转换数字先来看看其他进制转换十进制以2进制为例先简单说明计算方法.例如:10101转换为10进

2020-10-12 19:46:23 223 1

原创 PHP源码分析-hex2bin函数源码分析

PHP源码分析-php2bin函数源码分析这个函数看字面意思是十六进制转二进制但是实际的意思十六进制转字符串.这也算是php的一个坑吧.需要说明一点是php中十六进制转二进制需要通过十进制中转.不知道是为了统一还是为了简单,下次分析下进制转换的函数.这次主要里看看php2bin函数,代码不多,但是大多数是位运算.看上去挺烧脑的.下边是相应的源码和注释说明static zend_string *php_hex2bin(const unsigned char *old, const size_t oldl

2020-10-10 18:15:28 1474

原创 GO-golang生成MD5-md5

GO-golang生成MD5-md5Md5 := md5.New()io.WriteString(Md5, "123456")rst := fmt.Sprintf("%x", Md5.Sum(nil))fmt.Println(rst)结果e10adc3949ba59abbe56e057f20f883eProcess finished with exit code 0

2020-09-25 17:31:56 1167

原创 GO-golang关于时间的一些处理,获取当前时间以及和当前时间相关的时间,时间串转换为当前时间

GO-golang关于时间的一些处理,获取当前时间以及和当前时间相关的时间,TZ时间转换为当前时间//当前时间time.Now().Format("2006-01-02 ")time.Now().Format("2006-01-02 15:04:05")//一年以后time.Now().AddDate(+1, 0, 0).Format("2006-01-02 15:04:05") //一个月以后time.Now().AddDate( 0, +1, 0).Format("2006-01-02 1

2020-09-10 20:19:30 318

原创 GO-使用golang解密使用php的openssl_encrypt加密的结果(AES-128-ECB)(包括加密原值大于16位的情况),以及关于和java通信时的一些说明

GO-使用golang解密使用php的openssl_encrypt加密的结果,以及关于和java通信时的一些说明直接看源码<?php$key = "1234567887654321"; var_dump(bin2hex(openssl_encrypt('1234','AES-128-ECB',$key,OPENSSL_RAW_DATA )));结果4f87a3233278f5f9539ffd3b36b5ee37go源码func main() {key := []byte("12

2020-09-03 20:49:42 2723

原创 GO-使用golang实现C语言中的memset函数效果

void *memset(void *s, int ch, size_t n);函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 。memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,c

2020-09-03 14:21:44 1128

原创 GO-使用golang解密使用php的openssl_encrypt加密的结果以及key的长度不满足要求时的处理方法(AES-128-CBC/AES-256-CBC)

GO-使用golang解密使用php的openssl_encrypt加密的结果以及key的长度不满足要求时的处理方法不通语言之间的通讯尤其涉及到标准加密的情况的时候往往有很多不标准的事情闹得人焦头烂额的.今天就在处理php和go的加密通讯的时候遇到了问题.首先来看下正常的情况下的通讯php加密部分<?php$iv = "1234567890abcdef";$key = "abcdef1234567890";//使用OPENSSL_RAW_DATA,多一次转换,方便说明白通讯过程echo

2020-08-24 19:24:13 4211

原创 PHP源码分析-命令行模式(cli模式)下echo实现的源码分析和执行追踪

PHP源码分析-命令行模式-cli模式-下echo实现的源码分析和执行追踪一般的php程序员打断点的方式都是echo ,而echo最为我们最常用的语句对于其源码剖析也是值得我们去好好探究一番的,今天就以cli模式下的echo来具体追踪下php是如何实现"echo"的php版本:PHP 7.3.18系统:linux首先看这段代码<?phpecho 1234;非常简短,就是在终端打印一个字符1234,执行结果也比较简单明了[root@localhost ~]# php 20200820.

2020-08-21 16:25:14 516

原创 GO--go的json解析的两种法及注意事项

GO--go的json解析的两种法及注意事项最近打算用go来写项目,随便来学习下大家都认可的这门语言,谨做一些学习记录package mainimport ( "encoding/json" "fmt")//这里需要在注意 结构体里的key首字母必须大写,而且除首字母之外key的其余部分需要和json中的key保持一致type Origin struct{ First_key string}type Result struct { SecondKey string}type

2020-08-21 11:49:27 269

原创 算法--随机算法之水塘抽样(Reservoir sampling)以及算法证明

@[TOC](算法–随机算法之水塘抽样(Reservoir sampling)以及算法证明)假设有这么一个问题,在人流穿梭的上海南京路的劲头,有电视台在采访,要求随机在一个小时内抽取一个人来进行采访.首先分析这个问题:1.你不能要求所有人都在这里等着,主要是电视台给的备用凳子不够只能保持一个人在凳子上.2.不知道总数,人流是随机的不知道总数,所以不能得到总数N,然后通过1/N来得到相应的人.3.怎么办?最开始这个问题是在高纳德的<<计算机程序设计艺术>>一书中提出来的原本

2020-08-10 20:33:04 340

原创 算法--Google的楼层扔鸡蛋问题

算法-Google的楼层扔鸡蛋问题扔鸡蛋问题其实在网上已经在网上有很多答案了,有的使用迭代法,有的根据递归和的方法.对于可接受的方法来说递归和的方法无疑是可以做的有效的计算的方法,迭代法随便给个值以后简直可以认为无解.但是大部分人给出递归和的同时往往缺少一个严谨的证明,从而导致整个方法所依赖的理论是不成立的.迭代法就不多说了,网上的文章一搜一大把.今天着重说下通过递归和方法的证明.先看题目一幢 100 层的大楼,给你两个鸡蛋. 如果在第 n 层扔下鸡蛋,鸡蛋不碎,那么从前 n-1 层扔鸡蛋都不碎.这

2020-08-07 19:56:28 379

原创 PHP源码分析-流的实现之主要的用到的结构体和结构体间的关系

PHP源码分析-主要的用到的结构体和结构体间的关系

2020-08-05 20:54:49 113

原创 PHP源码分析-流的实现之file流的链接和glob流的链接

PHP源码分析-流的实现之file流的链接和glob流的链接显而易见file://流是对本地文件的处理,而glob的流则简单的做下描述.glob:// — 查找匹配的文件路径模式PHP的文档提供的说明…简单明了.下边是个简单的例子<?php$it = new DirectoryIterator("glob://D:/wamp64/www/*.php");foreach($it as $f) { printf("%s: %.1FK\n", $f->getFilename()

2020-08-05 20:41:23 232

原创 PHP源码分析-流的实现之ftp流的连接和data流的解析

PHP源码分析-流的实现之ftp流的连接和data流的解析前边几章分析完http的链接之后,这里趁热打铁分析下ftp是如何链接远程服务器的,并顺带分下一个特殊的协议data.(这里提一句本文的代码顺序和源码顺序不一致,为的是说明方便,C语言对待吗顺序是有要求的)首先从注册开始php_register_url_stream_wrapper("ftp", &php_stream_ftp_wrapper);然后下一步跟踪代码PHPAPI const php_stream_wrapper ph

2020-07-30 21:50:59 362

原创 PHP源码分析-流的实现之parse_url的源码分析

PHP-流的实现之parse_url的源码分析<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>此处是一个完整的url的组成,这里只对每个段做简单的说明, scheme:协议部分,例如:httpuser和password:用户名和密码,最原始的协议规定的用户名和密码,以http为例如果服务器设置了此

2020-07-29 20:58:31 442

原创 PHP源码分析-流的实现之普通http流的处理

PHP-流的实现之普通http协议的解析前一章处理说完标输入流的处理,这章看下php是如何针对普通的http网络流建立连接的.php_register_url_stream_wrapper("http", &php_stream_http_wrapper);类似上一章的方法搜索//首先是PHPAPI const php_stream_wrapper php_stream_http_wrapper = { &http_stream_wops, NULL, 1 /* is_ur

2020-07-28 20:35:28 397

原创 PHP源码分析-流的实现之标准输入

PHP-流的实现之标准输入前一篇文章写了如何去查找留的通用实现往后章针对一个具体的流来探索下php是如何实现的.先从简单的开始------标准输入流的封装-php://stdin首先接上一章,获取到’php://'流的实现php_register_url_stream_wrapper("php", &php_stream_php_wrapper);然后继续追踪代码查找php_stream_php_wrapper的赋值,此处的php_stream_php_wrapper可以认为是php流工厂

2020-07-27 20:27:00 759

原创 PHP源码分析-file_get_contents函数

PHP源码分析-file_get_contents函数php版本:7.3.4一直在做php方面的工作,总是在用php但也仅限于用,总想着有时间见去看看php的源码,总算得点时间去自己看下php的源码看完有些心得但总怕忘记,这里算是对php源码的一些记录.先大概说明下流程PHP的协议都是伪协议,比如:php://,http://,glob://等等,都是经过一层封装的协议.首先从file_get_contents函数源码进去然后层层追踪具体流程如下//file.c (ext\standard) li

2020-07-14 18:37:18 1028

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除