| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 332 人关注过本帖
标题:一个C++问题!谢谢!
收藏  订阅  推荐  打印 
独孤小梦
Rank: 3Rank: 3
等级:中级会员
帖子:255
积分:2958
注册:2008-6-5
一个C++问题!谢谢!

我在做题目时,遇到一个问题!
我先谢谢大家能看我的程序,我的问题如下:
输入1个数(INT的)将它的低4位(右边)都置为1;
这个程序应该怎么写?
我一开始使用了数组来写^可是发现不对,我先把代码搞上来!
#include<iostream>
#define N 10
using namespace std;
main(void)
{
    int i,bh[N];
    for(i=0;i<10;i++)
        cin>>bh[i];
    cout<<"原数:\n";
    for(i=0;i<10;i++)
    cout<<bh[i];
    for(i=0;i<10;i++)
    {
        if(bh[i]==('\0'-4))
            bh[i]=1;
        else
            if(bh[i]==('\0'-3))
                bh[i]=1;
            else
                if(bh[i]==('\0'-2))
                    bh[i]=1;
                else
                    if(bh[i]==('\0'-1))
                        bh[i]=1;
    }
    for(i=0;i<10;i++)
        cout<<bh[i];
}

这个肯定不对!请问大家,要怎么实现这个题目?谢谢大家!
搜索更多相关主题的帖子: INT  std  void  int  main  
2008-8-14 20:58
xlh5225
Rank: 2
等级:注册会员
帖子:141
积分:1630
注册:2007-8-14

我的解答有一个假设,你的电脑(CPU)是小端组织的,也就是intel系列的.
源程序如下:
#include <iostream>
using namespace std;

int main(){

    // 本例中,将src的低4位置为1
    int src;
    cin >> src;

    // mark为掩码,二进制形式为:0000000000000000000000000001111
    int mark=15;
    src |= mark;

    // 可以输出检查一下结果
    cout << src << endl;

    return 0;
}
2008-8-14 22:03
xlh5225
Rank: 2
等级:注册会员
帖子:141
积分:1630
注册:2007-8-14

如果你的电脑是大端组织的,如苹果机,IBM机等.
将掩码的四个1置于高位即可
2008-8-14 22:05
独孤小梦
Rank: 3Rank: 3
等级:中级会员
帖子:255
积分:2958
注册:2008-6-5

哇,不是很懂!

编程小菜
2008-8-15 00:22
独孤小梦
Rank: 3Rank: 3
等级:中级会员
帖子:255
积分:2958
注册:2008-6-5

这里换的是二进制的!那要怎么换十进制的呢?

编程小菜
2008-8-16 23:24
xlh5225
Rank: 2
等级:注册会员
帖子:141
积分:1630
注册:2007-8-14

有区别吗?二进制是内在表示而已,不知道你想搞啥子!
2008-8-17 00:35
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.050508 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved