其他分享
首页 > 其他分享> > 二进制

二进制

作者:互联网

进制

293147

2 * 10 # 5 +

9 * 10 # 4 +

3 * 10 # 3 +

1 * 10 # 2 +

4 * 10 # 1+

7 * 10 # 0

 

权值 :

用10的n次方 这样的数称为10进制数

10 进制 没有10, 逢10进1 => 9 + 1 => 10

十六进制(hex)

权值 : 以16为底的n次方

16进制没有16, 逢16进1

八进制

权值 : 以8为底的n次方

8进制没有8, 逢8进1

二进制(binary)

权值 : 以2为底的n次方

2进制没有2, 逢2进1.

0x123 =>

1 * 16 # 2 + //权值

2 * 16 # 1 +

3 * 16 # 0 = 291

 

0110 1001 =>

0 * 2 # 7 : 128

1 * 2 # 6 : 64

1 * 2 # 5 : 32

0 * 2 # 4 : 16

1 * 2 # 3 : 8

0 * 2 # 2 : 4

0 * 2 # 1 : 2

1 * 2 # 0 = 105

 

0x69 =>

6 * 16 + 9 = 105

 

十进制数105和16进制数0x69及2进制的0110 1001, 这3个数是什么关系 ?

是一回事,同一个数

 

练习 :

0x6211

6 * 16 # 3

2 * 16 # 2 + 529

1 * 16 # 1 +

1 * 16 # 0 =

529 + 24,576 => 25105

 

0011 1101

32 + 16 + 8 + 4 + 1 => 61

二进制和十六进制的相互转换

十进制 二进制 十六进制

0 0000 0

1 0001 1

2 0010 2

3 0011 3

4 0100 4

5 0101 5

6 0110 6

7 0111 7

8 1000 8

9 1001 9

10 1010 A

11 1011 B

12 1100 C

13 1101 D

14 1110 E

15 1111 F

 

结论 : 一个16进制数正好可以对应4个bit的二制数, 两个16进制数就可以更方便表示8个bit, 正好一个字节

0x93 =>

1001 0011

0xE72C

1110 0111 0010 1100

0101 0110 1010 1110 =>

0x56AE

 

9 :

8421

0000

1001

0x9C5AD7B2 => 4字节

1001 1100 0101 1010 1101 0111 1011 0010

 

0101 1101 0101 0011 0110 0101 1001 0100 =>

0x5D536594

二进制

原码 反码 补码

原码:将⼀个整数,转换成⼆进制,就是其原码。如单字节的5的原码为:0000 0101;-5的原码为1000 0101。

反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每⼀位取反。如单字节的5的反码为:0000 0101;-5的反码为1111 1010。

补码:正数的补码就是其原码;负数的反码+1就是补码。如单字节的5的补码为:0000 0101;-5的补码为1111 1011。

 

计算机底层的所用数据都是二进制

表示数据的正负使用符号位, 符号位永远位于2进制中的最左边, 最高位

如果符号位为0, 说明这个数是正数

如果符号位为1, 说明这个数是负数

计算中的所有数据都必须是以补码形式保存

正数的补码就是自身

负数的补码是由它相反数全部按位取反再加1得到

比如 -8的补码, 8的原码全部取反+1得到

0000 1000 => 1111 0111 => 1111 1000 这就是负8的补码.

0000 0000 正0

1000 0000 负0

补码的出现解决负0的问题, 还有解决计算机(早期)中没有减法的问题

 

0011 1011 => 是一个正数 => 0x3B => 59

1101 0011 => 是一个负数, 负几?? 先找它的相反数

-1 => 1101 0010

取反 => 0010 1101 => 0x2D => 45

所以1101 0011是 -45

 

查看下面的2个数是多少.

0101 1100 : 0x5C => 92

1100 0010 : 是负数, 负几?

-1 => 1100 0001

取反 => 0011 1110 => 0x3E => 62

所以 1100 0010是-62

 

最大值最小值

byte型

最大值

0111 1111 => 0x7F = > 7*16+15 => 127

1111 1111 => 是负数, 负几?

二进制变十进制:减1 取反 换算 加负号

-1 => 1111 1110

取反=> 0000 0001 => 1

所以1111 1111 是-1

最小值

1000 0000

-1 => 0111 1111

取反 => 1000 0000 => 0x80 => 128

所以1000 0000 是 -128

它是byte型 最小值

short型

最大值

0111 1111 1111 1111=> 0x7FFF

最小值

1000 0000 0000 0000 => 0x8000

int型

最大值

0111 1111 1111 1111 1111 1111 1111 1111=> 0x7FFFFFFF

最小值

1000 0000 0000 0000 0000 0000 0000 0000 => 0x80000000

char 型

最大值

1111 1111 1111 1111 => 0xFFFF

最小值

0000 0000 0000 0000 => 0x0000

 

 

 

 

 

标签:10,0000,16,二进制,0101,补码,1111
来源: https://www.cnblogs.com/0313yewu/p/16150716.html