目录
C语言-进制
一、基本单位
一个字节Byte -> 内存划分的最小单位
一个字节 = 8bit
一个比特位(bit)-> 最小单位
二、正负数原码、补码
正数 :原码 == 补码
负数 :补码 ==原码的基础上取反 + 1
例子 :-10 1000 1010 ->取反得 1111 0101 -> 加1得 1111 0110
三、进制转换(十进制转二进制为例)
1 分解法
十进制 :11 = 8(3) + 2(1) + 1(0)= 2^3 + 2^1 +2^0
二进制 :0000 1011
一个字节最大能表示的数是:
127 = 64(6)+ 32(5)+16(4)+8(3)+4(2)+2(1)+1(0)
127转化为二进制为 : 0111 1111
128转化为二进制需要两个字节 :0000 0000 1000 0000
2 辗转相除法
十进制转化为二进制,一直除2
3 实例
将150用辗转相除法转换成二进制
把二进制数按权展开、相加即得十进制数
1、正整数
分解法、辗转相除法 正数 :补码 = 原码
2、负数 十进制 -> 二进制
-100
1110 0100 :原码
1001 1011 -> 1001 1100 -100的二进制
补码 = 原码的基础上按位取反 + 1
注意:二进制存储的就是补码
3、负数 二进制 -> 十进制
1101 1100 补码
1010 0011 -> 1010 0100 原码 按位取反加一 数为-36
二进制和八进制,十六进制的转换
八进制 010 101 001 -> 2 5 1
十六进制 0010 1111 1001 -> 2 f 9
二进制转化为八进制
十进制转化为八进制,十六进制
实际应用
x86系统 32位操作系统 运行内存 :4G
2^32/1024/1024/1024 = 4G
0x0000几个字节?
0000 0000 0000 0000 二进制 2个字节
4G的内存地址编号 :0x0000 0000 —— 0xffff ffff
x64系统 64位操作系统 运行内存 :128G ,还有虚拟内存
补充进制标识
二进制 0b 1010
八进制 0 1224
十六进制0x 32ab