2021-07-09

2021.7.15学习小记

  1. (num & ( 1 << i )) 该代码适合适用于测试某个比特位是 0 还是1 .

  2. 若想将 x = 0000 1010 的第四位设为 1 , 则需要 x | (1 << 4)

  3. 若想将 x = 0000 1010 的第三位设为 0 ,则需要 x & ~( 1 << 3 )

  4. 内存必须要申请之后才能使用,如果使用了未申请的非法内存,此时就是“未定义行为”。

  5. 内存

  6. 0xCC VS的 debug 模式会把局部变量的后面填充上一些0xCC 以便发现问题。

  7. 字节序
    字节序和CPU相关,主要为小端(低位在低地址上)。
    int num = 0x11223344
    在地址中存储为 44 33 22 11
    char num = 0x12
    在地址中存储为 12
    char num[ ] = { 0x11 , 0x22 , 0x33 , 0x44 };
    在地址中存储为 11 22 33 44

  8. 补码
    int num = -10; 原码 0a 00 00 80 16进制
    在地址中存为补码 (除符号位取反+1)f6 ff ff ff
    原码 二进制为 1000 0000 0000 0000 0000 0000 1010
    反码 1111 1111 1111 1111 1111 1111 0101
    补码 1111 1111 1111 1111 1111 1111 0110
    f f f f f f 6
    因为小端模式 所以显示为 f6 ff ff ff
    补码:为了让计算机能够统一 加法和减法。

  9. 类型转换
    如果是把长的数据转为短的数据,高位不要,低位截断
    如果是把短的数据转为长的数据,高位补符号位

  10. n次方函数

  #include<math.h>
 pow ( tmp , n ) ;   //tmp的n次方
  1. .dll就是动态链接库
    很多exe程序在发布的时候 不仅仅发布exe本身 而且吧配套动态链接库一起发布 。想要运行exe就需要保证同时具备动态库。否则exe会很大。 更新时候即更新dll,便于软件 更新。
  2. 如果某个操作符的各个操作数属于不同类型,那么其中一个操作数转为另一个操作数的类型,否则无法进行,寻常算数转换。
    long double
    double
    float
    unsigned long int
    long int
    unsigned int
    int
  3. 易错代码
int main()
 {
 unsigned int i ;
 for ( i = 9 ; i> = 0 ;i-- )
 {
 printf("%u\n", i );
 }
 }

因 i 为无符号数,直到 i=0后, i–,即0+(-1)、
0000 0000 0000 0000 0000 0000 0000 0000
1111 1111 1111 1111 1111 1111 1111 1111 相加
存储为1111 1111 1111 1111 1111 1111 1111 1111 ,看作正数
所以unsigned 类型比较容易溢出,尽量不用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值