免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8641 | 回复: 9
打印 上一主题 下一主题

unsigned long 到 unsigned short如何转换? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-26 16:01 |只看该作者 |倒序浏览
unsigned long a[2];
unsigned short b[4];
b=(???)a;

论坛徽章:
0
2 [报告]
发表于 2003-03-26 18:04 |只看该作者

unsigned long 到 unsigned short如何转换?

可以使用强制方法

a[0]=(uhsigned long *)b

论坛徽章:
0
3 [报告]
发表于 2003-03-27 00:51 |只看该作者

unsigned long 到 unsigned short如何转换?

原帖由 "无双" 发表:
可以使用强制方法

a[0]=(uhsigned long *)b


  我觉得应该是:

    a=(unsigned short) b;

  因为,a 为数组首地址,,将数组首地址强制转换为 unsigned short 型

可以

论坛徽章:
0
4 [报告]
发表于 2003-03-27 08:25 |只看该作者

unsigned long 到 unsigned short如何转换?


我写错了
谢谢鸵鸟兄指正

论坛徽章:
0
5 [报告]
发表于 2003-03-27 09:24 |只看该作者

unsigned long 到 unsigned short如何转换?

Do not access a small-aligned address by using a recast pointer of larger alignment. For example, treating the address of a char data type as a pointer to a long can cause an alignment error because this might mean executing a 4-byte move from an address that is not a multiple of four. The following example illustrates this style of coding:
char a[10];
char *p = &a[1];
long l = *(long *)p;   // ERROR!; Attempt to move a long from
                       // the address of a char.
摘自MSDN

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-03-27 12:00 |只看该作者

unsigned long 到 unsigned short如何转换?

1、将unsigned long转化为unsigned short是不安全的,如果long的大小超过short允许的最大值,存在丢失数据的危险。
2、无双和鸵鸟大虾,你们那样的转化方式可行吗?仔细看看。

论坛徽章:
0
7 [报告]
发表于 2003-03-27 13:18 |只看该作者

unsigned long 到 unsigned short如何转换?

我的方法是把一个long型值保存在两个short中

  1. ║#include <stdio.h>;
  2. ║main()
  3. ║{
  4. ║        unsigned long a[2]={0xfafbfcfd,0xeaebeced};
  5. ║        unsigned short b[4];

  6. ║        *(unsigned long *)b=a[0];
  7. ║        return 0
  8. ║        ;
  9. ║}
复制代码


以上代码运行于TC3。0

论坛徽章:
0
8 [报告]
发表于 2003-03-27 13:21 |只看该作者

unsigned long 到 unsigned short如何转换?

另外上次发帖时没有写对

还有
这只是把一个long保存在两个short内
而不是把一个long转换成一个short

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2003-03-27 13:43 |只看该作者

unsigned long 到 unsigned short如何转换?

原帖由 "无双" 发表:
另外上次发帖时没有写对

还有
这只是把一个long保存在两个short内
而不是把一个long转换成一个short
这么做倒是可以!

论坛徽章:
0
10 [报告]
发表于 2003-03-27 23:08 |只看该作者

unsigned long 到 unsigned short如何转换?

高见,,,还是无双大虾看的远,,, 谢谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP