C进制

二进制:0b或者0B开头 八进制:0开头 十进制:直接写 十六进制:0x或0X开头

    进制转换

    10进制:123=1*100+2*10+3*1=123

        8进制:0123=1*64+2*8+3*1=83

        16进制:0x123=1*256+2*16+3*1=291

     二进制与八进制互转:

         每3个2进制表示一个8进制:因为0b111==07  (8进制每位最大是7)

        2进制转8进制:0b 011 111 111=0377

        8进制转2进制:0 1 2 3=001 010 011

     二进制与十六进制互转:

        0b 0011 1111 1111=0x3FF

        0x 1 2 3=0001 0010 0011

        123-->2进制:0b0111 1011-->8进制:0173-->16进制:0x7B

    

位运算

  
  
  1. &与运算:对应两个二进位均为1时,结果位才为1,否则为0。(有假为假==0)
  2.     2&3
  3.     0000 0000 0000 0000 0000 0000 0000  0010 -- 2
  4.  &  0000 0000 0000 0000 0000 0000 0000  0011 -- 3
  5.     -----------------------------------------
  6.     0000 0000 0000 0000 0000 0000 0000  0010   --2
  7.    
  8. |或运算:对应的两个二进位有一个为1时,结果位就为1,否则为0。(有真为真==1)
  9.     2|3
  10.     0000 0000 0000 0000 0000 0000 0000  0010 -- 2
  11.  |  0000 0000 0000 0000 0000 0000 0000  0011 -- 3
  12.     -----------------------------------------
  13.     0000 0000 0000 0000 0000 0000 0000  0011 --3
  14. ^ 异或运算:对应的二进位不同时为1,否则为0。(不同为真==1,相同为假==0)
  15.    2^3
  16.    0000 0000 0000 0000 0000 0000 0000  0010 -- 2
  17. ^  0000 0000 0000 0000 0000 0000 0000  0011 -- 3
  18.    -----------------------------------------
  19.    0000 0000 0000 0000 0000 0000 0000  0001  --1
  20. 注意:1.相同整数相^的结果是0.2.一个数^另一数两次结果不变3.整数相^跟顺序无关
  21. 2^2   2^3^3  3^2^3
  22. 010    010    011
  23. 010    011    010
  24. ---    ---    ---
  25. 000    001    001
  26.        011    011
  27.        ---    ---
  28.        010    010
  29.  
  30.  ~ 取反运算:对整数的各二进位进行取反,包括符号位(0110,真假互换)  
  31. 注意:取反是单目操作符 也就是只操作一个数
  32.  0000 0000 0000 0000 0000 0000 0000  0010 -- 2
  33. ~ -----------------------------------------
  34.  1111 1111 1111 1111 1111 1111 1111  1101  ---  -3  补码
  35.  1000 0000 0000 0000 0000 0000 0000  0011  ---  -3  原码
  36.  1111 1111 1111 1111 1111 1111 1111  1100  ---- -3  反码
  37.  1.计算机里:补码==原码==反码(不是指表现形式相等,是指真实的值相等)
  38.  2.正数的补码,反码 , 原码的表现形式是一样的.
  39.  3.负数的补码=反码+1;  反码=原码符号位不变其余取反.
  40.  
  41.  取反==原数的反值-1;//  2 :-2-1=-3   -3:  3-1=2
  42.    
  43.    << 左移:把整数的各二进位全部左移n位,高位丢弃(包括符号位),低位补0
  44.    左移n位其实就是乘以2n次方(但移动后符号位变化除外,符号位改变则正负改变)
  45.     3 <<1 -->6 ---> 3*21次方
  46.     3 <<2 -->12---> 3*22次方
  47.     3 <<3 -->24---> 3*23次方
  48.    
  49.    0 0000 0000 0000 0000 0000 0000  0011000
  50.     1100 0000 0000 0000 0000 0000 0000 0000
  51.          
  52.     >> 右移:把整数的各二进位全部右移n位,符号位不变。高位的空缺是正数补0;
  53.    是负数高位是补0或是补1 取决于编译系统的规定;右移n位其实就是除以2n次方
  54.    
  55.     3>>2   -->1 3/21次方=1
  56.     3>>2   -->0 3/22次方=0
  57.    
  58.     0000 0000 0000 0000 0000 0000 0000 0011
  59.     000000 0000 0000 0000 0000 0000 0000 00
  60.    
  61.    printf("3>>2=%d\n",3>>2);  //0
  62.  
  63.  




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值