BIT
计算机数据储存以二进制为基础,通常情况下,计算机中:
char
= 1 byte = 8 bits ('a'
is01100001
)short
= 2 bytes = 16 bits (42
is0000000000101010
)int
= 4 bytes = 32 bits (42
is0000000000
...0000101010
)double
= 8 bytes = 64 bits
但在不同的计算机可有不同的情况,比如在有的计算机中sizeof(int) 可能是16;
在C语言里不能直接以二进制来表示常数,但可以以八进制, 十进制, 十六进制来表示;
BITWISE(位操作)
Bitwise AND (&)
口诀:两位为1,则为1,其他为0;
Example:
00100111 AND | 0 1
& 11100011 ----|-----
-------- 0 | 0 0
00100011 1 | 0 1
|
Used for e.g. checking whether a bit is set;
Bitwise OR (|)
口诀: 两位为0,则为0,其他为1;
Example:
00100111 OR | 0 1
| 11100011 ----|-----
-------- 0 | 0 1
11100111 1 | 1 1
|
Used for e.g. ensuring that a bit is set
Bitwise XOR(^)
口诀:相同为0,相异为1;
Example:
00100111 XOR | 0 1
^ 11100011 ----|-----
-------- 0 | 0 1
11000100 1 | 1 0
|
Used in e.g. generating random numbers, building adder circuits
Bitwise NEG(~)
口诀:1变0,0变1;
Example:
~ 00100111 NEG | 0 1
-------- ----|-----
11011000 | 1 0
|
Used for e.g. creating useful bit patterns
Bitwise left shift (<<) and right shift (>>)
左移或者右移给定位数,如果位数不够用0补
Example:
00100111 << 2 00110010 >> 2 -------- -------
10011100 00001100 |
FILE-FLAG:
通常一个文件会有相关的file permission, 例如在linux 系统中,文件有相关的permission,
r-read permission, w-write permission, x-execute permission
例如如果用 ls command 可以查看相关文件信息:
$ ls -l odd.c
-rwxrw-r-- 1 jas group 486 26 Jul 23:22 odd.c
前三位表示owner的permission ; 例如-rwx表示文件的所有者可以读写执行该文件
中间三位表示group member 的permission;
后三位表示others 的permission ;
同时,类似, directory 也有相关的permission flag, 但是在目录的permission中, r
r --表示是否可以查看该目录下的文件(ls)
w--表示是否可以creat, remove等该目录下的文件(rm)
x-表示是否可以进入该目录 (cd)