zoukankan      html  css  js  c++  java
  • AL&&PY&&PWNTOOLS&&C语言

    PYTHON

    range()函数

    range(start,stop[,step])
    

    计数从start开始(默认为0),到stop结束(不包括stop),step为步长,默认为1

    example:

    range(9):[0,1,2,3,4,5,6,7,8]
    
    range(1,11):[1,2,3,4,5,6,7,8,9,10]
    
    range(0,10,3):[0,3,6,9]
    
    range(0,-10,-1):[0,-1,-2,-3,-4,-5,-6,-7,-8,-9]
    

    int函数

    class int(x. base=10)
    

    x--字符串或数字

    base--进制数,默认为十进制(如何看x)

    返回值:返回整型数据

    字符串的截取

    变量[头下标:尾下标],其中下标从0开始,可以是正数或负数,下标位置为空表示截取到头或尾,注意:列表右边的元素是不被包含的。

    subprocess

    python中的subprocess模块定义了Popen类:

    class subprocess.Popen( args,
          bufsize=0,
          executable=None,
          stdin=None,
          stdout=None,
          stderr=None,
          preexec_fn=None,
          close_fds=False,
          shell=False,
          cwd=None,
          env=None,
          universal_newlines=False,
          startupinfo=None,
          creationflags=0)
    

    参数说明:

    args可以是一个字符串,也可是一个包含程序参数的参数列表。若是字符串,则被当作可执行程序的路径;若是参数列表,则一般第一项是需要执行的程序。

    stdin,stdout&stderr分别表示子程序的标准输入、标准输出和标准错误。可选的值有PIPE(创建一个新的管道[我的理解是在新的管道里进行进行输入和输出,用于父进程和子进程的交互?])或者一个有效的文件描述符(正整数)或者是文件对象,还有NONE(不做任何重定向,子进程的文件描述符继承父进程)。另外,stderr可以是STDOUT,表示子进程的标准错误也输出到标准输出。

    shell为True时,将args在shell中解释执行,否则默认使用os.execvp()来执行子程序。

    communicate()函数:Popen.communicate(input=None)

    和子进程进行交互,发送数据到stdin并且从stdout和stderr中读数据,直到接收到EOF,等待子进程结束。父进程若要通过此函数给子进程发送数据,则stdin要为PIPE,要从子进程中接收数据,stdout和stderr也都要为PIPE。可选的input要为字符串类型。返回值为一个元组:(stdoutdata,stderrdata)。

    各字符形式转换

    十进制数->ascii字符:chr( )

    ascii字符->十进制数:ord( )

    base编码

    import base64
    s=b'hello'
    a=base64.b64encode(s)
    

    输出字符串中字符下标

    cipher='hello'
    print cipher.find('h')
    

    PWNTOOLS

    pwntools IO模块使用

    p.send(data)  #发送数据
    p.sendline(data)   #!!  发送数据和'
    '
    p.recv(numb=2048,timeout=default)   #接收指定字节和超时的数据
    p.recvline(keepends=True)     #接收一行数据
    p.recvuntil("...",drop=False) #接收数据直到我们设置的标志
    p.recvall( )    #一直接收到EOF为止
    p.recvrepeat(timeout=default)     #持续接收直到EOF出现或超时
    p.interactive( )    #得到shell后进入交互模式
    

    u32: unpack解包,把字符串小端序转化成十进制整数

    p32: pack打包,把十进制整数以小端序转化成十六进制的字符串

    C

    atoi函数

    int atoi(const char *nptr)
    

    扫描参数nptr字符串,会跳过前面的空白字符,从第一个不是空白的字符开始将字符串转换成整型数,如果第一个字符就不是数字,则转换失败。如果nptr不能转换成数字或者为空字符串,则返回0。该函数要求被转化的字符串是按十进制数理解的,并且对于字符串中的数字存在大小限制(int类型大小有限),若过大,可能返回-1。

    fflush函数

    //头文件
    #include<stdio.h>   
    //函数原型
    int fflush(FILE *stream)
    

    功能:

    如果stream是空指针,则fflush( )函数将对上面定义了行为的所有流执行刷新操作;否则,刷新并将任意未写入的数据写入文件流。如果成功刷新,返回0;指定的流没有缓冲区或者只读打开时也返回0。返回EOF指出一个错误。

    例如:fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]

    fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上

    strtof函数

    //头文件
    #include<stdlib.h>
    //函数原型
    float strtof(const char* restrict str, char ** restrict str_end)
    

    功能:解释str指向的字符串中的浮点值,函数丢弃任何的空格字符,直到找到第一个非空白字符,然后将字符串中的字符形成有效的浮点并转换成浮点值

    SSE指令集

    Intel扩充的指令集,用于像信号处理、科学计算或者3D图形计算一样的应用。其优势包括:更高分辨率的图像浏览和处理、高质量音频、MPEG2视频、同时MPEG2加解密;语音识别占用更少CPU资源;更高精度和更快响应速度。(简单理解就是追求了更高性能)

    使用xmm0-xmm8共8个128bit的暂存器实现从内存中进行数据的暂存

    _mm_cvtsi128_si32()将低32位的数据转换成整数保存

    浮点数存储

    对于float型数据,其二进制有32位,其中符号位1位,阶码8位,尾数23位;对于double型数据,其二进制为64位,符号位1位,阶码11位,尾数52位。

    任意浮点数可以表示成:
    $$
    V=(-1)s*M*2E
    $$
    其中符号位存储s,阶码存储E,尾数存储M。

    E是有符号数,为正数时高位为1,负数时高位为0。

    当E不全为0或1时,M默认为1.xxxx的形式,最高位的1省略,所以在float类型下可以存储24位的精度;当E全为0时,M为0.xxxx格式,存储0或很小的浮点数;当 E全为1是,若M全为0,则表示±∞(看符号位决定),否则不是一个数(NaN)。

    sprintf函数

    int sprintf(char *buf,char *format,[argument,...])
    

    类似与printf()函数,但是sprintf函数并不会把字符串输出到标准输出流,而是输出到buf缓冲段。

    fread函数

    size_t fread(void *buffer,size_t size,size_t count, FILE* stream)
    

    表示从stream文件流中每次读入size字节数的内容存入buffer缓冲区,共读入count次。

    calloc函数

     void *calloc( unsigned int num, unsigned int size)
    

    申请num个size大小的chunk块,在申请后会自动把申请到的chunk清零

    C++

    const char* std::string::c_str(string) const
    

    将string转换成char* 这样便可以使C++中的string使用C中操作字符串的函数了

  • 相关阅读:
    mysql之四.表介绍
    mysql之三.mysql的工作流程
    mysql之二.mysql中的存储引擎
    mysql之一.初识mysql
    数据及表结构的导出
    迭代器和生成器
    python字符串格式化的几种方式
    关于global 和 nonlocal你需要注意的问题
    请编写一个函数实现将IP地址转换成一个整数
    Python中__repr__和__str__区别
  • 原文地址:https://www.cnblogs.com/Theffth-blog/p/12368973.html
Copyright © 2011-2022 走看看