2130

帖子

0

TA的资源

五彩晶圆(中级)

21
 

回复 20楼 richiefang 的帖子

不是因为16位32位的差别。而是编译器的区别。具体的记不清了,只记得同一个语句用不同编译器结果不一样。都是32位编译器。有空再去翻翻编译原理。

姐姐长的漂亮。我们当然要称赞一下,忙中偷乐么。莫要介怀绝不是八卦
此帖出自编程基础论坛
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

22
 

回复 21楼 leang521 的帖子

这是很有可能的,我大学时候就碰到过Watcom C++的一个有趣的问题。
这跟编译原理关系估计不大,编译原理主要讲编译的语法识别。生成的代码和ELF的段如何组织,内存如何分配应该是体系结构和编译技术的交叉学科。
此帖出自编程基础论坛
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

23
 
我一直想再好好学一下C语言的,可是不知道该如何下手,各位大牛给些指点吧~~~
此帖出自编程基础论坛
 
 
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

24
 
原帖由 zhangweijin 于 2009-11-26 09:37 发表
我一直想再好好学一下C语言的,可是不知道该如何下手,各位大牛给些指点吧~~~

得找个中等规模的工程,有个高手带着练练手。
此帖出自编程基础论坛
 
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

25
 
原帖由 richiefang 于 2009-11-26 09:56 发表

得找个中等规模的工程,有个高手带着练练手。

不如温书。既然以前学过。那么再次吧书从头到尾温习一遍。你会发现有新的体会。
此帖出自编程基础论坛
 
 
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

26
 
原帖由 leang521 于 2009-11-26 19:01 发表

不如温书。既然以前学过。那么再次吧书从头到尾温习一遍。你会发现有新的体会。

我在这里发的一系列话题,都是教科书上没说,或者一语带过的。
想精通C语言这种工程手段,一定要在大中型工程的实践中成长,不写10000行代码很难跨越职业程序员的门槛。
此帖出自编程基础论坛
 
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

27
 
原帖由 richiefang 于 2009-11-26 21:08 发表

我在这里发的一系列话题,都是教科书上没说,或者一语带过的。
想精通C语言这种工程手段,一定要在大中型工程的实践中成长,不写10000行代码很难跨越职业程序员的门槛。


他说想在好好学习。你现在让他写代码。岂不是难为他
此帖出自编程基础论坛
 
 
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

28
 
原帖由 leang521 于 2009-11-27 15:52 发表


他说想在好好学习。你现在让他写代码。岂不是难为他

不难为是学不好的,少林寺的毕业答辩,是从罗汉阵里面打出去。
其实也不难,sourceforge上面有很多开源项目,他们的作者基本上也都是自己感兴趣,写着玩练出来的。
此帖出自编程基础论坛
 
 
 

回复

194

帖子

0

TA的资源

纯净的硅(中级)

29
 

回复大小端

曾经在atmeg128上,在ICCAVR环境下,移植UIP时,就被打小端问题给折腾过。
此帖出自编程基础论坛
 
 
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

30
 

回复 29楼 gsy 的帖子

能否简单说说这个问题,AVR我印象里是8bit处理器,它的编译器是如何处理16bit和32bit数据的呢?
此帖出自编程基础论坛
 
 
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

31
 

小结

大小端的问题,指的是字长大于8bit的处理器,在处理一个字的时候,将其拆分成多个字节的表示方法。对于大端处理器,高位在低地址,低位在高地址。如0x12345678,在内存中这样表示:
地址 00 01 02 03
数据 12 34 56 78
一般,ARM/MIPS/PPC都是大端处理器。

而对于小端处理器,低位在低地址,高位在高地址。0x12345678这样排列:
地址 00 01 02 03
数据 78 56 34 12
x86属于小端。

这两种排列方法没有好坏之分,但是,对于不同体系结构的处理器之间通讯的时候,有可能产生问题。如MIPS机器发送0x12345678,到了x86接收的时候,就成了0x78563412。
试想,如果通讯中发生这种错误,多可怕啊——

“呼叫021,呼叫021”

那边,120收到了:“收到呼叫,收到呼叫”

“炮轰3309地区!”

“明白,炮火覆盖9033地区”~

于是,无数我方战士被自己人的炮火……


因此,人们制定了网络字节序——和大端字节序一致,高字节先发,低字节后发。这样,对于x86和MIPS/ARM/PPC处理器,对数据的处理流程就不一样了。x86需要将收到的数据按字节序颠倒以后处理,而MIPS/ARM/PPC可以直接处理。编写程序的工程师们为了让代码可移植,定义了以下的宏:
htonl /× 主机序转网络序,long int类型 ×/
ntohl /× 网络序转主机序,long int类型 ×/
htons /× 主机序转网络序,short int类型 ×/
ntohs /× 网络序转主机序,short int类型 ×/


对于小端处理器,这个宏返回颠倒字节序后的值,而对于大端处理器什么都不做。
这些宏如何实现的呢?感兴趣的同学可以去查看Linux或FreeBSD中的源代码。
此帖出自编程基础论坛
 
 
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

32
 

再想一想一个问题:

为什么我在标题里面,提出“吃鸡蛋应该先打碎哪头”?
这是一个著名的掌故,提醒一个线索,可以翻一翻《格列佛游记》。
此帖出自编程基础论坛
 
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

33
 

回复 31楼 richiefang 的帖子

了解了点儿新东西,呵呵。
此帖出自编程基础论坛
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(中级)

34
 

MSP430

MSP430中 member2[0]是0X5678 ,member3[0]是0X78   
刚试过的。

[ 本帖最后由 cinderella215 于 2009-11-30 17:21 编辑 ]
此帖出自编程基础论坛

赞赏

1

查看全部赞赏

 
个人签名Come on!
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

35
 

回复 34楼 cinderella215 的帖子

原来做技术的女孩子这么多啊。原来还以为稀缺
此帖出自编程基础论坛
 
 
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

36
 
原帖由 leang521 于 2009-12-2 11:19 发表
原来做技术的女孩子这么多啊。原来还以为稀缺

呵呵,其实女生做技术也挺好的。
此帖出自编程基础论坛
 
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

37
 

回复 36楼 richiefang 的帖子

我们实验室就有一小撮,不过工作确实不好找,好多单位都不招女生。
此帖出自编程基础论坛
 
 
 

回复

1672

帖子

0

TA的资源

裸片初长成(初级)

38
 
原帖由 sjl2001 于 2009-12-2 15:35 发表
我们实验室就有一小撮,不过工作确实不好找,好多单位都不招女生。

短视的做法,这种破单位不去也罢。
此帖出自编程基础论坛
 
 
 

回复

194

帖子

0

TA的资源

纯净的硅(中级)

39
 

回复 29楼 gsy 的帖子

当时的问题时在移植UIP时,定义结构体时,出现过字节对齐的问题,我用仿真器看了UIP所定义的数据缓冲区的结构中的数据,因为UIP就是针对8位机的网络协议。当时我看接收到的数据出现了大小端的问题,或许就是字节对齐,当时UIP协议为了方便不同MCU的移植,在程序中设置了大小端设置,我下的移植移植案例说单片机是大端结构的,是在51上移植,但是当时我在128上ICCAVR环境下,收到的IP数据包的相邻数字出现高低字节的错位现象,我改成小端,收的数据排列的就对了。

具体协议结构我没深入研究,他是用定义一个八位的数据缓存区,然后将收到的数据缓冲区地址赋给IP协议处理的数据结构体,好像是通过结构体把相邻的8位数拼凑成16位或32的吧,没仔细研究,还请大虾给予指导。
此帖出自编程基础论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

40
 
看不懂。。。
此帖出自编程基础论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表