0
点赞
收藏
分享

微信扫一扫

嵌入式学习总结之C++(一)2进制、10进制、16进制;结构体;位运算

weipeng2k 2022-01-31 阅读 51

这篇文章是C++语言学习总结,目的是掌握嵌入式。有什么不足之处希望大家能指出来,帮助完善这篇文章。
学习网址:

  • https://www.bilibili.com/video/BV1dW411v7VM?p=13
  • https://www.bilibili.com/video/BV1iy4y1i7DT?from=search&seid=12734885497765107235&spm_id_from=333.337.0.0
  • https://www.runoob.com/w3cnote/bit-operation.html

内容总结:

  • 首先是了解2进制、10进制、16进制
2进制10进制16进制
0000000
0000111
0001022
0001133
0010044
0010155
0011066
0011177
0100088
0100199
0101010A
0101111B
0110012C
0110113D
0111014E
0111115F

可以看出2进制是逢2进1,10进制是逢10进1,16进制是逢16进1

  • 2进制转化16进制(重点)使用的是 8421码的方法:将2进制数分组,每四个一组,从右往左分,不够一组在前边加0
8位7位6位5位4位3位2位1位
8421码84218421
2进制位数00101010

计算方法: 8 × 0 + 4 × 0 + 2 × 1 + 1 × 0 = 2 8\times0+4\times0+2\times1+1\times0=2 8×0+4×0+2×1+1×0=2 8 × 1 + 4 × 0 + 2 × 1 + 1 × 0 = A 8\times1+4\times0+2\times1+1\times0=A 8×1+4×0+2×1+1×0=A
结果:0X2A

  • 2进制、10进制、16进制的引用

    - 2进制 `0B`;16进制`0X`;10进制直接写数字
    
  • 然后是了解结构体,结构体相当于一个大的集合,与数组不同的是可以在里边添加许多种类的东西,先掌握其简单用法
    定义结构体
    struct name{ int a; char b; float c; }x;//'name'是结构体的名字,'x'是变量
    写入数据
    x.a=1;x.b=2;x.c=0x2A;
    数据调用
    if(x.a==1) {z=x.b}

  • 结构体不仅可以储存变量还可以用来定义变量
    定义结构体
    typedef struct{ int a; char b; float c; }x//'name'可以省略
    写入数据
    x y;y.a=1;y.b=2;y.c=0x2A;
    数据调用
    if(y.a==1) {z=y.b}
    相当于把X的能力传给了Y,X本身不变,但是Y变了

  • 位运算(重点是取反,左移,右移)
    位运算是对二进制进行操作

符号描述运算规则
&两个位都为1时,结果才为1
|两个位都为0时,结果才为0
^异或两个位相同为0,相异为1
~取反0变1,1变0
<<左移各二进位全部左移若干位,高位丢弃,低位补0
>>右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)
举报

相关推荐

0 条评论