截取字节数组的单位强转

假设:int a=1;int b=2;下面是对其进行的模拟内存分析。

192234089005098.jpg

在64位编译器下,int类型占4个字节,共4X8=32bit,char类型占1个字节。


四、Sizeof

作用:用来计算变量,常量或者是一种数据类型所占的内存字节数。

基本形式:sizeof(变量名|常量|数据类型),完成之后返回一个值。

①. Sizeof 变量|常量

②. Sizeof (变量|常量)

③. Sizeof (数据类型)

注意:数据类型一定要用括号括起来,不能写成sizeof 数据类型这样的形式。

 

Char c=‘A’;

字符在内存中也是也二进制的格式存储的。

Int num=6;//在内存中以00···0110存储

Char num=‘6’;//对应的ascii码值是54=32+16+4+2,在内存中为11 0110

两者之间有着本质的区别,一个是具体的整数值,一个是字符,以ASCII格式存储。




(一)按位与 &

功能:1&1=1,结果才为1,否则为0。

(二)按位或 |

功能:1&0=1,否则为0。


示例:



注意: 虽然char也是以二进制的格式存储的,但它是以ASCII码的十进制数为标准的所存储的二进制数。

             而int 是一个数值,是以其真实的进制十进制所存储的二进制数;  

      获取的字节数组 bytes[]

1.bytes[0] ——209 ————0110 1000

2.bytes[1]——7—————0000 0111

   

想把单个的字节组成2个字节的short类型,  最终== 2001====0000 0111 1101 0001


(1)

bytes[0]  &  0xff

 0000 0000  0110 1000

 0000 0000  1111  1111

&得到:

0000 0000  0110 1000  


byte[1] << 8

 0000 0000  0000 0111

向左移动8位后的结果:

 0000 0111  0000 0000



(3)

   bytes[0]  &  0xff  |  byte[1] << 8


0000 0000  0110 1000 

0000 0111  0000 0000

相或得到:

0000 0111  0110 1000  (得到了: 最终== 2001====0000 0111 1101 0001  ) 


(5)

(short)[bytes[0]  &  0xff  |  byte[1] << 8]   = 2001

   成功了


ASCII码字符对照表



ASCII码大致由三部分组成: 


1ASCII 打印字符:数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。注:十进制32代表空格 ,十进制数字 127 代表 DELETE 命令。下面是ASCII码和相应数字的对照表

ASCII

字符

 

ASCII

字符

 

ASCII

字符

 

ASCII

字符

十进位

十六进位

 

十进位

十六进位

 

十进位

十六进位

 

十进位

十六进位

032

20

 

 

056

38

8

 

080

50

P

 

104

68

h

033

21

!

 

057

39

9

 

081

51

Q

 

105

69

i

034

22

"

 

058

3A

:

 

082

52

R

 

106

6A

j

035

23

#

 

059

3B

;

 

083

53

S

 

107

6B

k

036

24

$

 

060

3C

<

 

084

54

T

 

108

6C

l

037

25

%

 

061

3D

=

 

085

55

U

 

109

6D

m

038

26

&

 

062

3E

>

 

086

56

V

 

110

6E

n

039

27

'

 

063

3F

?

 

087

57

W

 

111

6F

o

040

28

(

 

064

40

@

 

088

58

X

 

112

70

p

041

29

)

 

065

41

A

 

089

59

Y

 

113

71

q

042

2A

*

 

066

42

B

 

090

5A

Z

 

114

72

r

043

2B

+

 

067

43

C

 

091

5B

[

 

115

73

s

044

2C

,

 

068

44

D

 

092

5C

\

 

116

74

t

045

2D

-

 

069

45

E

 

093

5D

]

 

117

75

u

046

2E

.

 

070

46

F

 

094

5E

^

 

118

76

v

047

2F

/

 

071

47

G

 

095

5F

_

 

119

77

w

048

30

0

 

072

48

H

 

096

60

`

 

120

78

x

049

31

1

 

073

49

I

 

097

61

a

 

121

79

y

050

32

2

 

074

4A

J

 

098

62

b

 

122

7A

z

051

33

3

 

075

4B

K

 

099

63

c

 

123

7B

{

052

34

4

 

076

4C

L

 

100

64

d

 

124

7C

|

053

35

5

 

077

4D

M

 

101

65

e

 

125

7D

}

054

36

6

 

078

4E

N

 

102

66

f

 

126

7E

~

055

37

7

 

079

4F

O

 

103

67

g

 

127

7F

DEL



网站:http://www.51hei.com/mcu/4342.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值