请教变量数据在内存中的存储方式,比如int a=2,那么在内存中是怎么存储的呢

我的理解是开一小段内存存放a的ASCII码值,再开一段内存放数值2,但是我们打印a值的时候显示的是2,那么a和2所在的内存地址是存在什么样的联系呢我是非计算机专业的,正在... 我的理解是开一小段内存存放a的ASCII码值,再开一段内存放数值2,
但是我们打印a值的时候显示的是2,那么a和2所在的内存地址是存在什么样的联系呢
我是非计算机专业的,正在自学,感觉很迷糊,希望知道的指点下,谢谢
展开
 我来答
zxpointer
推荐于2017-11-24 · TA获得超过4100个赞
知道大有可为答主
回答量:1868
采纳率:33%
帮助的人:1192万
展开全部
额 你理解错了 。 跟本就不存在a的ASCII码值。
这样看:定义了一个变量,给它取个名字叫a,这个名字是给你程序员看的,计算机跟本不看这个a,a对计算机来说只是一个标识,它标识着在内存中所占用的一个大小为4B的内存空间,并且!这4B的空间存放一个整数,其值为2. 而在存储的时候是这样存的
由于内存的最小单位是字节,也就是1B是最小的单位,而一个int类型的数据在32的系统中要占用32位大小, 换算一个 8位=1字节 即8bit=1B 那么32位=4字节。 这个2转换成二进制数是10 ,但计算机要求用32位的数来存放这个2 ,咋办? 补0呗。在哪补? 肯定不能在后边补啊,那就变成别的数了—— 那,那就在前补。
所以是00000000 00000000 00000000 00000010
以上便是2这个数在计算机内存中的形式, 每8位一组分成4组刚好是4B大小,所以内存中就有连着的4个内存单元 来存放这个数值2. 而这一内存单元我们把它叫做a, 计算机也正是通过这个名字来标识这个数。
综上,总结一下,a这个字母是给程序员看的, 计算机不认识a这字母,a在计算机中仅仅是转换为一个计算机用于标识这个数值2的其它的什么东西。 具体是什么东西你不必要了解,其实我也不知道。而这个2在内存中存放的形式是占用4个内存单元的空间。
楼主想更深入了解这方面,建议把C语言学一遍后学学汇编语言就很清楚了
御含灵9r
2011-07-01 · TA获得超过4157个赞
知道大有可为答主
回答量:3007
采纳率:0%
帮助的人:2644万
展开全部
在内存中用4个字节存储int型 用的是2进制 就是32个bit
输出字符2是程序做的转换 把整形的2转化为字符型的2输出 内存中并没有存放2的字符
更多追问追答
追问
请问其他语言是否也都这样,对某变量赋的值其实并不在内存中,只是在需要的时候,程序从代码中做了调用呢
追答
程序的内存分为代码空间(不变) 和运行空间(运行时会变化,保存了代码当前执行的位置,好像你放电影放到一段时间,那有个栈指针把这个地方记住)
2作为常数存在于代码空间 而变量存在于运行的内存空间 有个地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
memberwin
2011-07-01 · TA获得超过3903个赞
知道大有可为答主
回答量:1000
采纳率:100%
帮助的人:491万
展开全部
a的ascii码值不会存储, 系统编译之后所有的变量都存储到符号表中,并且每个表项被分配一个符号ID,一般也是数字的,可以根据该符号的ID直接访问符号的值
内存中的数据都是二进制的,没有ASCII值
ASCII只在为便于人的理解,对二进制的一种表示,也仅仅在显示时用
追问
那么变量的值是否如一楼所说的,是程序做的转换,其实内存中并没有存放呢
其他语言在调用变量的值的时候,也都是在代码那里找到变量的值么
追答
变量的值在内存中肯定要存储的,并且就放到符号表中的各项的内容中,但是是以二进制存储的
所谓转换,并不是程序转换的,是系统将二进制的内容以用户要求的格式输出,比如内存中存储了00000010这样一个二进制数,现在用户要求以%d,也就是整型输出,系统就输出2

所谓代码,在程序编译之后就不再存在什么代码了,都已经是指令, 编译之后所有变量都以二进制形式存储在符号表中,要使用时,直接通过符号ID,也可以说直接通过地址就可以找到了,没代码什么事情
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2011-07-01 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3682万
展开全部
2这个数字的二进制补码方式,学c语言最前面都会接受的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卷清昶jR
2011-07-01
知道答主
回答量:26
采纳率:0%
帮助的人:15.5万
展开全部
存放的是a的AS2码,机器语言
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式