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个字节占用几个十六进制位那?
由 可见,一个十六进制数占用4个二进制位,所以1个字节需要用两个十六进制数表示
即
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);