初学标准c语言进制转换和函数基础概念

文章讲述了计算机中使用二进制、八进制和十六进制的原因,以及它们之间的转换方法。同时,介绍了原码、反码和补码的概念,以及补码如何转换回数据。此外,文章还讨论了函数在C语言中的应用,包括标准库函数、系统函数、第三方库函数和自定义函数的分类及使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进制转换:

1、为什么使用二进制、八进制、十六进制?

    因为目前的CPU只能识别高低两种电平,只能对二进制数据进行计算

    二进制虽然能够直接被计算机识别,但是不方便人去书写和记录,因此就把二进制数据转换成八进制,方便记录到文档中

    随着CPU的位数的不断增加,已经到目前的64位,所以八进制不再能够满足需求,因此发展出现在的十六进制,由于历史原因八进制还不能退出历史舞台

3、二进制转十进制

    每位乘以权位2^(n-1),求和

    10011001  128+16+8+1

4、二进制转八进制

    从低位起,每三个二进制位对应一个八进制位

    二进制:10 101 110 111 100

    八进制:2   5   6   7   4

5、二进制转十六进制

    从低位起,每四个二进制位对应一个十六进制位

    二进制:  10 1011 1011 1100

    十六进制: 2  B    B    C

6、原码、反码、补码

    原码:数据的二进制

    反码:

        正数的原码就是反码

        负数的反码是:它的原码符号位不变,其它位按位求反

    补码:

        所有数据在计算机中,都是以补码形式存储

        正数的原码就是补码

        负数的补码:

            1、转换成二进制,得到原码

            2、原码符号位不变,其余按位求反,得到反码

            3、反码+1,得到补码

7、补码如何转成数据:

    先确定是有符号还是无符号

        1、无符号\有符号且最高位为0,补码直接转成十进制

        2、有符号的且最高位为1

            a、补码-1,得到反码

            b、符号位不变,其余位按位求反,得到原码

            c、原码转十进制数

函数:Function

    一段具有某一项功能的代码集合,是C语言管理代码的最小单位

    把代码封装成一个个函数,方便管理和调用代码

                                                            函数部分: 

1、函数分类:

    (1)标准库函数:

        C语言标准委员会以函数形式提供的一些基础功能,都被封装在libc.so库中,并且分在了不同的文件中,需要使用时只要把对应的头文件导入即可(例如stdio.h...),然后通过具体的 函数名(参数) 即可完成调用

        #include <time.h>

        time_t time(time_t *tloc);

        功能:获取自1970-1-1 0:0:0 到调用时总共过了的秒数

        用法:time_t sec = time(NULL);

        #include <stdlib.h>

        int rand(void);

        功能:获取一个随机数

        注意:目前任何编程语言和系统都没有真正的随机数,C编译器是把从0~极大值范围的数值打乱后,存储到一块固定内存中,然后从里面取所谓的随机数

        void srand(unsigned int seed);

        功能:种随机种子,设置从随机数内存的某个位置开始取随机数,为了实现类似真随机的效果,seed位置一般使用time(NULL)来设置

        int system(const char *command);

        功能:执行系统命令command

        例如:system("clear");

    (2)系统函数:

        是操作系统以函数形式提供的一些功能接口

        但是系统函数不是真正的函数

    (3)第三方库函数:

        一些开源或收费的第三方代码

        GitHub

        md5

        JSON 序列化和反序列化

        100   "100"  "100"  100

        glog  谷歌日志系统

        XML 配置文件解析程序

    (4)自定义函数:

        为了更好地管理代码,减少代码冗余,把代码封装成自定义函数

        函数声明:

            函数声明的目的为了告诉其他的调用者,该函数的调用格式

    返回值类型 函数名(形参类型1 形参名,形参类型2 形参名,...);

        1、C语言中函数名一般全部小写,可以用下划线分隔

        2、如果不需要参数时,建议写void,不要空着

        3、如果没有返回值,就写void

        函数定义:

            函数的具体实现

    返回值类型 函数名(形参类型1 形参名,形参类型2 形参名,...)

    {

        //  函数体

        return [val];

    }

     

        函数调用:

            函数名(实参1,实参2);

            注意:返回值会放在调用函数语句这里,应该用变量接收或者直接显示,否则再也拿不到

   

    使用函数需要注意的问题:

        函数的隐式声明:

            在函数调用前没有任何该函数的声明或定义,那么就会产生隐式声明

            要避免产生隐式声明,那么就需要在函数调用前有函数声明或函数定义

    注意:如果在函数调用前完成了函数的定义,那么函数声明可以省略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值