请问图中的char a [10]转换成int n [10]后占的字节数改变了 可改变后的式子和in
答案:1 悬赏:30 手机版
解决时间 2021-11-29 14:29
- 提问者网友:献世佛
- 2021-11-28 17:44
请问图中的char a [10]转换成int n [10]后占的字节数改变了 可改变后的式子和in
最佳答案
- 五星知识达人网友:动情书生
- 2021-11-28 17:58
区分。。为什么要区分呢。这是只一种编码而已。转化了就是int型数组,被解释为int型。
比如字符‘a’,ascii表中被编码为97,于是在最底层无论储存为char型或者是int型,它的值一直为97,或者说0x61。
只不过用int型储存会浪费3个字节的空间值为0x00000061,而char型为0x61。用char型存储会节省空间。
底层值是相同的,同时两者可以被相互赋值,因为有隐式的转换规则。唯一的区别是你自己使用的时候怎么看待它,你可以把0x61看成int型(实际为0x00000061),也可以看成char型,甚至可以看成float类型。(这里有点不恰当,但是只要字节数符合就可以)。同一个数,在不同的类型下会被解释为不同的值,比如0x61,int解释为97,char型解释为‘a’仅此。追问也就是说转化过后完全相当于int型了吗?追答如果初学的话,你可以这样理解。随便当成int型的来用。
但是对真正深入理解是有问题的。
本质上就是数据从1个字节拓展到了4个字节。前面3个字节全为0。追问那可不可以这样理解:这个转变仅仅是所占位数的变化 对于数值是完全相同的?追答不能说数值相同。数值要看你怎么解释。。才说过嘛。0x87981238,这样32位数,int型解释、unsigned型解释。float型解释都不一样。但位级是相同的。
只能说位级的低8位相同,高24位被0拓展。
但大概意思是你那个意思。
比如字符‘a’,ascii表中被编码为97,于是在最底层无论储存为char型或者是int型,它的值一直为97,或者说0x61。
只不过用int型储存会浪费3个字节的空间值为0x00000061,而char型为0x61。用char型存储会节省空间。
底层值是相同的,同时两者可以被相互赋值,因为有隐式的转换规则。唯一的区别是你自己使用的时候怎么看待它,你可以把0x61看成int型(实际为0x00000061),也可以看成char型,甚至可以看成float类型。(这里有点不恰当,但是只要字节数符合就可以)。同一个数,在不同的类型下会被解释为不同的值,比如0x61,int解释为97,char型解释为‘a’仅此。追问也就是说转化过后完全相当于int型了吗?追答如果初学的话,你可以这样理解。随便当成int型的来用。
但是对真正深入理解是有问题的。
本质上就是数据从1个字节拓展到了4个字节。前面3个字节全为0。追问那可不可以这样理解:这个转变仅仅是所占位数的变化 对于数值是完全相同的?追答不能说数值相同。数值要看你怎么解释。。才说过嘛。0x87981238,这样32位数,int型解释、unsigned型解释。float型解释都不一样。但位级是相同的。
只能说位级的低8位相同,高24位被0拓展。
但大概意思是你那个意思。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯