c语言中,一个字节就是一个内存单位,占8位,假如我的int类型的数占了两个字节

那么它的地址该怎么算(它的范围),假如占一个内存单元,它的地址是不是在0~~2^8之间啊?感觉凌乱了... 那么它的地址该怎么算(它的范围),假如占一个内存单元,它的地址是不是在0~~2^8之间啊?感觉凌乱了 展开
 我来答
xoaxa
2012-12-22 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3423万
展开全部
内存地址是不能随便指定的,是由操作系统全权管理的,内存的高端和低端都被系统占用,还有显示存储区、硬件地址等,都会使用内存地址。用户程序在载入内存前地址相对是浮动的,不是绝对的,如果你感兴趣,可在不同的机器上运行同一个程序,你会发现某变量的存储位置是不同的。
在C语言中,大部分编译程序(VC、Dev等)都会给int类型变量分配4个字节的存储长度,1个字节(Byte)是8个二进制位(Bit),每个变量的存储地址的首字节都是偶数(内存对齐),这样便于管理和使用。事实上我们没必要在学习C的开始阶段就关心内存分配问题,这是操作系统方面的内容。
海贼514
推荐于2017-10-08 · TA获得超过105个赞
知道答主
回答量:89
采纳率:0%
帮助的人:38.8万
展开全部
1字节(b)=8位
8位即:0000 0000
内存单元具体多大,有你自己来定,这个不是关键。
假设每个字节是一个单位(占一个内存单元),如果int类型占两个字节,你可以把一个字节看做一块砖,两个字节就是两块砖摞在一起,就是那种感觉
更多追问追答
追问
若占一个字节,那它的地址的编号就是在0000 0000至1111 1111变换中的某一个,如果是两个,那它的编号是变成16位了吗(在 0000 0000 0000 0000 和1111  1111 1111 1111)?还是只是两个八位的组合(相加什么的)
追答
这样想:8位决定一个字节,而字节又分前后,俩字节排队就是16位,四个字节排队就是32位
0000 0000 - 0000 0000 - 0000 0000 -0000 0000
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胖胖丶不胖
2012-12-22 · 超过17用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:40.7万
展开全部
一个字节有8位,每个位都是0/1代码,根据不同可能性就有2^8。假如int占2字节,那就假如占内存0x0000到0x0001,为2个字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式