设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3219|回复: 3
打印 上一主题 下一主题

指针、字节、进制、大小端。汪老师说我会了c的50%,噢耶!

[复制链接]
跳转到指定楼层
1#
发表于 2014-3-20 16:22:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tianping 于 2014-3-20 16:40 编辑

这个图,老师让我牢牢钉在脑海里,有空就过上两遍

最基本的C语法:
int i=0xFF;   //申请一个INT变量i,占4字节,存储的数据值是16进制的FF。
int * pi=&i;  // 申请一个指针变量pi,指针的值是i的首字地址。
图中i的值存在0x00bcf9a8-0x00bcf9ab这四个字节中,依次是FF,00,00,00。
pi的值存储的是i的地址:0x00bcf9a8。
下面这个图就是指针的高级用法,拿宝图寻宝,找到宝库发现放的是一张宝图,然后按图再去找,结果找到的还是一张宝图,然后再去找.......




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2014-3-20 16:24:58 | 只看该作者
本帖最后由 tianping 于 2014-3-20 16:50 编辑

关于数制:
我们常用的是十进制,个位、十位、百位、千位......
逢十进一,个位的1表示1,十位的1表示10,百位的1表示100。
那么二进制呢?比照十进制的说法,就是个位、二位、四位、八位......
逢二进一,个位的1表示1,二位的1表示2,四位的1表示4,八位的1表示8 。
三进制,类推有个位、三位、九位、二十七位......
逢三进一,个位1表示1,三位1表示3,九位1表示9,二十七位1表示27 。
。。。。。。
十六进制,就是个位、十六位、256位、65536位.....
十六进制的数字依次是:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
十六进制数字用0x开头表示,0x10就是十进制的16,0xff就是十进制的255
最常用的数制是十进制、二进制,十六进制,如下图:
32位cpu的字长是32位,最大地址值为2^32-1,能直接访问的内存空间是4G。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2014-3-20 16:30:48 | 只看该作者
本帖最后由 tianping 于 2014-3-20 16:52 编辑

关于大小端:
名词:LITTLE-ENDIAN(小字节序、低字节序),BIG-ENDIAN(大字节序、高字节序)
看下图十六进制的0x12345678在内存中的排列位置:

最低位的数字0x78排在了内存的低地址0x00d2fcc8处,最高位的0x12排在了高地址0x00d2fccb处,低位字节排放在内存的低地址端,高位字节排放在内存的高地址端,这种字节存储顺序叫小端,小字节序。相反的就叫大端,大字节序。
PowerPC系列采用大端方式存储数据,而x86系列则采用小端方式存储数据。
一般TCP/IP协议用大端方式,因此大端也叫网络字节序。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
发表于 2014-3-20 16:42:30 | 只看该作者
本帖最后由 消失的电波♂ 于 2014-3-20 16:47 编辑

给个赞~~~大小端字节序也害了好多人
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-1 11:33 , Processed in 0.096613 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表