数据在内存中的存储(数据类型,无符号数,表现形式)

目录

数据类型

1.整形

原反补

大小端

 无符号转化

2.浮点数

科学计数法

存储

指针类型

自定义类型

空类型

其他


数据类型

1.整形

unsigned表示无符号数,signed表示有符号数,特例是char没有规定哪个是无符号有符号

整形的二进制表现形式有3种

原反补

(正数原反补相同)

原码:二进制直接写出来,首位为符号位,正为0负为1,    

反码:原码除开符号位取反

补码 :反码+1

反码转换为原码可以按以上步骤反过来-1取反,也可以直接取反+1.

大小端

  内存中储存的是补码,并且是倒着存的

为什么?这就要引出一个概念,大小端

 无符号转化

把一个有符号数转化为无符号数并不是大家认为的把-1变成1,不是字面上的去掉符号

无符号与有符号的区别是无符号的二进制首位不视为符号位,而是参与计算,

举个例子-1

原10000000000000000000000000000001

反1111111111111111111111111111111111110

补1111111111111111111111111111111111111

无符号

补1111111111111111111111111111111111111

反1111111111111111111111111111111111111

原1111111111111111111111111111111111111-》得出一个很大很大的数

2.浮点数

科学计数法

10.1   ->  (-1)^S*M*2^E     s=0  m=1.01  e=1

s  :  正为0,负为1

m  : 把小数点移位后范围为1-2,

e  : 左移n位为n,右移n位为-n    

存储

m存储不存首位,因为首位始终为1,这样就能多存一位

e存进去需要加127,因为考虑到e可能为负数

s为多少存多少

m存储不存首位,因为首位始终为1,这样就能多存一位

e存进去需要加1023,因为考虑到e可能为负数

s为多少存多少

指针类型

自定义类型

空类型

——————————————————————————————————————————

其他

 %u是十进制打印无符号整形

因为整形数与浮点数存取方式不同,所以使用浮点数方式取出整形数会与预期结果不同

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值