ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

二进制

2022-04-15 20:03:28  阅读:241  来源: 互联网

标签:10 0000 16 二进制 0101 补码 1111


进制

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有