zoukankan      html  css  js  c++  java
  • python&C&Assembly 常见函数(持续更新)

    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位。

    任意浮点数可以表示成:

    ()

    其中符号位存储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中操作字符串的函数了

     

  • 相关阅读:
    Python基础之只接收关键字参数的函数
    Python基础之可接受任意数量参数的函数
    Django基础之创建admin账号
    GIT版本控制工具
    全站导航
    python中对url编码解码处理
    VUE安装及初始化报错解决办法
    使用Appium+python爬取手机App
    python发送QQ邮件
    docker部署flask项目
  • 原文地址:https://www.cnblogs.com/Theffth-blog/p/12232390.html
Copyright © 2011-2022 走看看