signed转换至unsigned(关于符号扩展)

本文介绍了计算机中基本数据类型如char、bool、float、int、double等在内存中的占用情况,以及不同位数系统下指针的字节数。同时讲解了变量的signed与unsigned形式如何影响其在内存中的表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先明确基础知识

char 和 bool 是1个字节

float 和 int 是4个字节

double是8个字节

32/64位系统只和指针的字节数有关,不影响int这些类型的大小

指针即地址,32=4*8,一个字节(bit)8byte,所以一个32位系统指针是4字节

给定一个变量,例如char a=-1,红色为最高位,符号位

其signed形式:10000001

则其unsigned应该由符号位扩展而来,所以为11111111

只有8位的原因是char是一字节

如果char a=1,其unsigned形式为00000001

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值