C语言复习——基本概念

作为一名已经大二的学生,现在写博客真的有点晚。不过我相信,只要我一直写下去,肯定会一直一直进步的。
底下都是我复习之后查漏补缺或者是不熟悉的知识点。相对比较繁琐,复习到后面章节,内容会比较多,各部分的知识点就会看起来连贯一些。

  • 十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:
    将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;
    保留余数,用商继续除以 N,又得到一个新的商和余数;
    仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;
    ……
    如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。
  • 十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:
    用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;
    将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;
    再将积的整数部分取出,继续用 N 乘以余下的小数部分;
    ……
    如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。
  • 字符串必须在一行内结束,不能换行。否则编译器报错。
  • 赋值是指把数据放到内存的过程。
  • printf 是 print format 的缩写,意思是“格式化打印”。
  • %d称为格式控制符。
  • C语言并没有严格规定 short、int、long 的长度,只做了宽泛的限制:
    short 至少占用 2 个字节。
    int 建议为一个机器字长。32 位环境下机器字长为 4 字节,64 位环境下机器字长为 8 字节。
    short 的长度不能大于 int,long 的长度不能小于 int。
    总结起来,它们的长度(所占字节数)关系为:
    2 ≤ short ≤ int ≤ long
    这就意味着,short 并不一定真的”短“,long 也并不一定真的”长“,它们有可能和 int 占用相同的字节数。
  • 合法的二进制赋值
    int a = 0b101; //换算成十进制为 5
    //合法的八进制数赋值
    int a = 015;
    //合法的十六进制赋值
    int a = 0X2A;
    只有个别的编译器才有这种赋值方式。

-sizeof 用来获取某个数据类型或变量所占用的字节数,如果后面跟的是变量名称,那么可以省略( ),如果跟的是数据类型,就必须带上( )。
需要注意的是,sizeof 是C语言中的操作符,不是函数,所以可以不带( )。

  • C语言规定,把内存的最高位作为符号位。C语言规定,在符号位中,用 0 表示正数,用 1 表示负数。
    C语言允许我们这样做,如果不希望设置符号位,可以在数据类型前面加上 unsigned 关键字,例如:
    unsigned short a = 12;
    unsigned int b = 1002;
    unsigned long c = 9892320;
    这样,short、int、long 中就没有符号位了,所有的位都用来表示数值,正数的取值范围更大了。这也意味着,使用了 unsigned 后只能表示正数,不能再表示负数了。
  • 不加 unsigned 的数字称为有符号数,能表示正数和负数,加了 unsigned 的数字称为无符号数,只能表示正数
  • 字符处理软件在处理文本时,从左往右依次扫描每个字节:
    如果遇到的字节的最高位是 0,那么就会断定该字符只占用了一个字节;
    如果遇到的字节的最高位是 1,那么该字符可能占用了两个字节,也可能占用了四个字节,不能妄下断论,所以还要继续往后扫描:
    如果第二个字节的高位有两个连续的 0,那么就会断定该字符占用了四个字节;
    如果第二个字节的高位没有连续的 0,那么就会断定该字符占用了两个字节。
  • .C语言的优势是运行效率极高,这正是底层开发所看重的。底层开发有时候就是一个模块,或者是一个服务,规模不算大,但是对效率有严格的要求,
    此时用C语言就非常合适,所以针对底层开发的C语言库较多,因为它们有非常大的实用价值。
  • 在计算机内存中,整数一律采用补码的形式来存储。这意味着,当读取整数时还要采用逆向的转换,也就是将补码转换为原码。
     将补码转换为原码也很简单:先减去 1,再将数值位取反即可。
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值