0进制转换和位运算
计算机中存储单位
什么是bit
bit是计算机中最小的信号但愿,可以表示高电平或者低电平。
以二进制“001”为例, 每一位都是一个bit。二进制只能由0/1组成,所以正好可以表示bit。
什么是byte
1个bit只能表示两种信号或者两种状态,表示的范围很小,例如英文字母26个就无法表示。所以规定8个bit一组作为一个数据的最小单元。即8bit=1byte。ASCII码表中的一个字符为一个byte。
1位二级制数可以表示的状态的个数是2种。0 1
2位二进制数可以表示的状态的个数是2的2次幂。00 01 10 11
3位二进制数可以表示的状态的个数是2的3次幂。
8位二进制数可以表示的状态的个数是2的8次幂。也就是256种。
1kb=1024byte
1mb=1024kb
1gb=1024mb
1tb=1024gb
写法和程序输出方式
不同进制的写法(c语言和java语言)
二进制由0,1组成。以0b开头
//合法的二进制
int a = 0b101; //换算成十进制为 5
int b = -0b110010; //换算成十进制为 -50
int c = 0B100001; //换算成十进制为 33
//非法的二进制
int m = 101010; //无前缀 0B,相当于十进制
int n = 0B410; //4不是有效的二进制数字
八进制由0-1组成,以0开头
//合法的八进制数
int a = 015; //换算成十进制为 13
int b = -0101; //换算成十进制为 -65
int c = 0177777; //换算成十进制为 65535
//非法的八进制
int m = 256; //无前缀 0,相当于十进制
int n = 03A2; //A不是有效的八进制数字
十六由0-9、a-f组成进制以0x开头
//合法的十六进制
int a = 0X2A; //换算成十进制为 42
int b = -0XA0; //换算成十进制为 -160
int c = 0xffff; //换算成十进制为 65535
//非法的十六进制
int m = 5A; //没有前缀 0X,是一个无效数字
int n = 0X3H; //H不是有效的十六进制数字
二进制数、八进制数和十六进制数的输出
short
int
long
八进制
%ho
%o
%lo
十进制
%hd
%d
%ld
十六进制
%hx 或者 %hX
%x 或者 %X
%lx 或者 %lX
#include