c++中如何将一个字节integer型数的第5位置1(20分)

  • 主题发起人 主题发起人 kmwap
  • 开始时间 开始时间
K

kmwap

Unregistered / Unconfirmed
GUEST, unregistred user!
如上
置为xxxx1xxx
 
用format函数转成ANSISTRING再用STRTOINT转成INT
 
int a;
a |= (1 << 3)
 
呵呵!如果是DELPHI中可以用
a:= a or (1 shl 5);
也就是用 位或 操作,也一个第5个是1 ,其余位都是0 的数进行 或操作,就
是你要的东东了。
int a;
a |= (1 << 5) //应该是5吧。
 
char a;
或 unsigned char a;
方法很多,还有下面的:
a|=0x10 ;
 
to jsxjd:
你这样是不对的
 
为什么?
 
你的结果是11110000
 
你试了没有,你运行一下下面的代码看看,返回结果是什么????????
int main(int argc, char* argv[])
{
char c;
c=10;
c|=0x10;
printf("%d",c);
return 0;
}
/////////////// 26 11010
 
我看错题咯。应该是1 shl 3=8;
应该是 a:=a or 8;
那成C++就应该是
a|=0x8 ;
不知对不对.
 
to begin
Delphi:
你又...了.

要么
a|=16;
要么
a|=0x10;
不过这里有一点,第5位到底是哪位:
87654321 ////// 0x10
76543210 ////// 0x20
01234567 ////// 4
12345678 ////// 8
 
to jsxjd:
10 ==> 1010
26 ==> 11010
达到效果了吗?你是把第几为置为1了呢,请问?????
 
to jsxjd:
xxxx1xxx
你自己看嘛?楼主应该是
12345678的顺序呀。所以应该是
a|=0x8 ;
 
让楼主自己去判断吧,不争了,这不是本质问题。
 
char a;
a |= 0x10;
 
int a;
a | = 0x10;
a | = (1<<5);
都很正确。
 
后退
顶部