| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4290 人关注过本帖
标题:[求助]一个取数高低字节的问题
只看楼主 加入收藏
YOGIOH
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-5-8
收藏
 问题点数:0 回复次数:4 
[求助]一个取数高低字节的问题
[求助]一个取数高低字节的问题
编写一个函数fhl( ),
从无符号整数x中分别取出高字节和低字节,
并以十六进制数输出。
执行程序时,输入2008,写出输出结果。使用1~2种算法编程

算法1:利用位运算实现函数功能。
算法2:利用整除和求余运算实现函数功能。
算法3:利用指针实现函数功能。


我有个问题首先是16位比如1111111111111111 左8个1代表高字节吗,我们取出这8位的时候需要把后面8个0一起取在内?还是仅仅输出前8位代表高字节?
如果是上面那种想法
我想问一下算法三应该怎么算?
1,2算法我基本上算写出来了
大家还有没有其他方法做?
搜索更多相关主题的帖子: 数高低 字节 算法 函数 
2007-05-12 19:52
emyhello
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-1-3
收藏
得分:0 
定义一个字符型指针,将该指针指向该整数(需强制转换)。这时,指针指向的地址就是整数的高八位,指针再自增一,则就指向了低八位。
2007-05-12 20:33
YOGIOH
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-5-8
收藏
得分:0 
以下是引用emyhello在2007-5-12 20:33:18的发言:
定义一个字符型指针,将该指针指向该整数(需强制转换)。这时,指针指向的地址就是整数的高八位,指针再自增一,则就指向了低八位。

我有这样想过
但是这样类型不同 不会出错吗


2007-05-12 20:42
emyhello
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-1-3
收藏
得分:0 
可以通过强制类型转换。
#include<stdio.h>
int main()
{
unsigned int in_data,temp;
unsigned int *str=&in_data;
unsigned char *ptr;
printf ("please input the data:");
scanf ("%d",&in_data);
temp=(unsigned int)str;
ptr=(unsigned char *)temp;
printf ("\nthe hign is:%6u\nthe low is:%6u",*ptr,*ptr++);
getch();
}
能在WIN-TC中正常运行,由于时间匆忙没加注释,请原谅。
2007-05-13 11:54
YOGIOH
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-5-8
收藏
得分:0 
高低字节
以下是引用emyhello在2007-5-13 11:54:02的发言:
可以通过强制类型转换。
#include<stdio.h>
int main()
{
unsigned int in_data,temp;
unsigned int *str=&in_data;
unsigned char *ptr;
printf ("please input the data:");
scanf ("%d",&in_data);
temp=(unsigned int)str;
ptr=(unsigned char *)temp;
printf ("\nthe hign is:%6u\nthe low is:%6u",*ptr,*ptr++);
getch();
}
能在WIN-TC中正常运行,由于时间匆忙没加注释,请原谅。

对于这句不是很理解
temp=(unsigned int)str;
temp不是无符号整型吗
str不是一个无符号整型的指针吗
这个赋值是把str转换成什么赋值给了temp?


2007-05-13 12:17
快速回复:[求助]一个取数高低字节的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012787 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved