我听一个老师说1的的二进制0000 0001(8位);而我知道1应该是整形int。那么应该有4字节才对(32CPU),也就是32位,所以我混乱了。谁能解析下!我哪里混乱了,我在研究补码,这些不懂,好像挺关键的。
再有int a = 1;的话a应该有4字节是吧,那他的地址(我这边的)0013FF7C这又是怎么回事?这个是16进制。是8位,1字节!搞不懂,int定义的变量4字节的,存地址一字节?可能我定义理解不好,请谁能帮我分辨下这些!
他是讲补码时,说1的 2进制的00000001的所以是个整形常量!不是字符,所以我就混乱了!就算是短整型也要2字节啊。这边才一字节!请帮我梳理一下!谢谢
char、short、int、long和long long都属于整型,只是为了区分,说整型一般都指int,其他的用别的名称来称呼,严格来说你老师说得没错。
追问可他为什么是一字节啊
追答老师应该是用最简单的情况来说明,char就是1字节的,8个bite,用它来说明比特位操作比用32位的int型容易多了,方便教学,不然你看一堆的0和1,数都数半天。
追问也就是说,我的理解还是对的,其实这边的1是4个字节(32bit)。只是为了简单所以写了一个字节。其实是00000000 00000000 00000000 00000001才是1.补码的换算也是通过这个来算才是具体的。。。
追答是的。