学习C一段时间了,一些学习初期的遗留问题终于在不断实验和调试之后得到了答案,在恍然大悟和欣喜若狂之余,为防止知识的诅咒,赶紧提笔记录下来,希望给刚入门的朋友一些参考;如果有幸被前辈们看到这篇文章,也请多批评指正。
按照标题相反的顺序:
1.计算机是由0和1组成的,一个(1/0)就是一个比特位,一个字节等于八比特,即1byte=8bit;2.计算机的内存由内存单元组成,每个内存单元的大小为8bit,即一个字节;
3.如果给你32盏排成一排的灯,对应有32个开关由你掌控,你能玩出多少种不同亮灭的花样呢?根据排列组合,应该是2^32个;同理64盏灯应该 有2^64种花样;
4.关于16进制和2进制,16进制的一位数需要2进制的四位来表示;
5."int a=0x11223344;"这段代码表达的意思是:在内存中开辟了4个字节用来存放整形变量a,并给其赋值为一个16进制数:11223344,这个数转换成2进制的话应该是由8*4=32个0或1组成(由第4点可知),而32bit=4byte,即4个字节。
上述5点就是读这篇文章需要准备的全部知识了,因为是新手向的,所以字符、字、字长以及kb、mb等的换算之类的没有拓展,下面我们进入正题。
以32位机器为例,如果有32根地址线,每根地址线能产生(1/