c语言中,一个字节就是一个内存单位,占8位,假如我的int类型的数占了两个字节
那么它的地址该怎么算(它的范围),假如占一个内存单元,它的地址是不是在0~~2^8之间啊?感觉凌乱了...
那么它的地址该怎么算(它的范围),假如占一个内存单元,它的地址是不是在0~~2^8之间啊?感觉凌乱了
展开
展开全部
内存地址是不能随便指定的,是由操作系统全权管理的,内存的高端和低端都被系统占用,还有显示存储区、硬件地址等,都会使用内存地址。用户程序在载入内存前地址相对是浮动的,不是绝对的,如果你感兴趣,可在不同的机器上运行同一个程序,你会发现某变量的存储位置是不同的。
在C语言中,大部分编译程序(VC、Dev等)都会给int类型变量分配4个字节的存储长度,1个字节(Byte)是8个二进制位(Bit),每个变量的存储地址的首字节都是偶数(内存对齐),这样便于管理和使用。事实上我们没必要在学习C的开始阶段就关心内存分配问题,这是操作系统方面的内容。
在C语言中,大部分编译程序(VC、Dev等)都会给int类型变量分配4个字节的存储长度,1个字节(Byte)是8个二进制位(Bit),每个变量的存储地址的首字节都是偶数(内存对齐),这样便于管理和使用。事实上我们没必要在学习C的开始阶段就关心内存分配问题,这是操作系统方面的内容。
展开全部
1字节(b)=8位
8位即:0000 0000
内存单元具体多大,有你自己来定,这个不是关键。
假设每个字节是一个单位(占一个内存单元),如果int类型占两个字节,你可以把一个字节看做一块砖,两个字节就是两块砖摞在一起,就是那种感觉
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个字节有8位,每个位都是0/1代码,根据不同可能性就有2^8。假如int占2字节,那就假如占内存0x0000到0x0001,为2个字节
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询