整型数与浮点数在内存中的表示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整型数与浮点数在内存中的表示相关的知识,希望对你有一定的参考价值。

 落下的基础还是要早点补起来的。。。 



整型数在内存中存储

正整数

int a = 25为例

1.      a2进制表示

(25)10 = (11001)2

因为int型在内存中占4个字节,也就是32位,实际是

(0000 0000 0000 0000 0000 0000 0001 1001)

2.      16位表示

(0 0 0 0 0 0 19) à(00 00 00 19) 在内存中低地址在高位,也就是

19 00 00 00

 

负整数

int b = -25为例

1.    b2进制表示

(1000 0000 0000 0000 0000 0000 0001 1001)

2.    取反

0111 1111 11111111 1111 1111 1110 0110

+1

0111 1111 11111111 1111 1111 1110 0111

7 F F F F F E 7 à 7F FF FF E7

在内存中表示为

E7 FF FF 7F

 

浮点数在内存中存储

正浮点数

float c = 8.25f

1.      c2进制表示

1000.01

1000.01 = 1.00001*2^3(尾数00001,指数3)

0     表示符号位(0正数,1负数)

1-22  表示尾数部分

23-31 表示指数部分(共9位) 127+指数 

所以表示为

0 1000 0010 00001 后面补0,共32

0100 0001 00000100 0000 0000 0000 0000

4 1 0 4 0 0 0 0 à 41 04 00 00

内存中

00 00 04 41

 

负浮点数

float d = -8.25f

1.      d2进制表示

-1000.01

先计算除符号以外的

1000.01 =1.00001*2^3

因为是负数,所以首位是1

1 1000 0010 00001

1100 0001 00000100 0000 0000 0000 0000

C 1 0 4 0 0 0 0 à C1 04 00 00

内存中

00 00 04 C1

 

2016-03-16 23:16:16 于北京 海淀

本文出自 “做最好的自己” 博客,请务必保留此出处http://qiaopeng688.blog.51cto.com/3572484/1751963

以上是关于整型数与浮点数在内存中的表示的主要内容,如果未能解决你的问题,请参考以下文章

字符串转浮点数 字符串转整型数

c语言怎么求当前电脑能表示的最大整型数?

浮点数在内存中的存储

十六进制ascii码转浮点数

Hadoop数据类型

在C语言中,怎样判断两个整型的数相等