温故而知新--字节、进制和位移

1. 先说字节

    字节,byte,计算机存储的计量单位;

    1个字节占用8个bit;---- 这点很基础,也很重要,是换算的关键

2. 再说进制

   人类熟悉的是十进制,逢十进一,1、2、3...9、10、11...20、21...

   计算机熟悉的是二进制,逢二进一,1、10、11、100、101、110、111、1000...

   编码中还常用到十六进制,逢十六进一, 1、2、3...9、a、b、c、d、e、f、10、11...1a、1b...1f、20、21...

3. 字节和进制的关系

    前面说了,1个字节占用8个bit,也就是占用8个二进制位

    那1个字节占用几个十六进制位那?

    由 0xF = 2^{4} - 1 可见,一个十六进制数占用4个二进制位,所以1个字节需要用两个十六进制数表示

    即 2^{8} - 1 = 0xFF =255

4. 移位

    移位一般是指 左移或者右移二进制位,要记住是二进制位哦

    int a = 1;
    printf("a = %d  a = 0x%x\n", a, a);
    printf("a << 1 = %d  a << 1 = 0x%x\n", a << 1, a << 1);
    printf("a << 2 = %d  a << 2 = 0x%x\n", a << 2, a << 2);
    printf("a << 3 = %d  a << 3 = 0x%x\n", a << 3, a << 3);
    printf("a << 4 = %d  a << 4 = 0x%x\n", a << 4, a << 4);
    printf("(a << 8) - 1= %d  (a << 8) - 1 = 0x%x\n", (a << 8) - 1, (a << 8) - 1);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值