| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1188 人关注过本帖
标题:字符赋给整型量的问题请教一下
取消只看楼主 加入收藏
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
字符赋给整型量的问题请教一下
  把几个字符封装到unsigned类型(可装4个字符)里面去  感觉没问题啦怎么输出结果不对啊

#include<iostream>
using namespace std;
int i=0;//记录包装过的字节数

unsigned pack(char chars)
{
    if (i<4)
        i++;//记录包装过的字节数,比如第一次的时候装到第4个字节
    unsigned hold;//暂存字符变量
    unsigned packbody=0;//包装体

    hold=chars;//把字符量交给hold
    hold<<=8*(4-i);//把字符移入packbody中没有记录的地方
    packbody+=hold;
    return packbody;

}//包装函数

template<typename T>
void print( T num)
{
    int mask=1;
    int shift=8*sizeof(T);
    mask<<=shift-1;
    for (int i=0;i<shift;i++)
    {
        if((mask & num)>0)
            cout<<1;
        else
            cout<<0;
        mask>>=1;
    }
    cout<<endl;

}//二进制输出

#include<iostream>
using namespace std;
void main()
{
    char test1='d',test2='b';
    unsigned testnumber;

    pack(test1);
    testnumber=pack(test2);

    print(test1);
    print(test2);
    print(testnumber);
   
}
搜索更多相关主题的帖子: 字符 整型 
2010-11-25 11:46
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 3楼 玩出来的代码
大侠确实非常人也  听你一言真的是醍醐灌顶  我感觉方法是对的但怎么也想不明白 其中的错误..若不是你一语点破我真不知道痛苦到什么时候  你的第1 第2 条指示我同意 但第三条我是对的...谢谢谢谢谢谢你
2010-11-25 21:52
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 2楼 木头lbj
呵呵 一起加油朋友
2010-11-25 21:54
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 4楼 pangding
呵呵 这是对的 真的 我试过了 不信你再想想
2010-11-25 21:56
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 3楼 玩出来的代码
还有 我觉得整形数和无符号数 的差别不就是在最高位的一位嘛  左移之后符号位不就不在了嘛  那俩者不都是一样的吗??  但我试过了 改成整形确实不行  我真想不通其中的奥妙啦  不知大侠能否再赐教赐教啊  感激不尽
2010-11-25 22:05
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 9楼 pangding
哦!!原来是这样的哦!!怪不得啊?? 你真是太棒了!!太感觉你了
2010-11-25 22:30
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 10楼 pangding
packbody 这个是局部变量是不是 出了那个函数后 它就被析构函数给消灭啦?? 所以要用全局的 (我是这样想的 但我感觉没把握) 我试过了 不改成全局变量确实不行 做了题目之后才知道那些不起眼的小知识是不能小看的啊!!
2010-11-25 22:41
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 13楼 pangding
真搞不懂了  经常碰到这种看起来很基础但又不明白原理的事
2010-11-26 20:03
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 15楼 玩出来的代码
呵呵  这一步我是知道用或的 但我一想这个hold只有传入字符的那八个位才有值 其它的都是0
比如hold=1111 1111 0000 0000   pockbody=0000 0000 0000 0000 那相加之后不就像把hold里的字装到pockbody(像一个空箱子)里面一样嘛  (一来加号和装字有很直接的感觉) 我觉得很直观啊   可能思想习惯不同吧
  
  谢谢你 玩出来的代码
 
2010-11-27 21:30
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
收藏
得分:0 
回复 16楼 pangding
  呵呵 不好意思让你糊糊了
2010-11-27 21:33
快速回复:字符赋给整型量的问题请教一下
数据加载中...
 
   



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

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