我是从vc转过来的,在vc中位操作很方便,char ch = 'a'; ch |= 0x80; 不知道在delphi中怎样表示?
解决方案 »
- DELPHI7的通配符比较的汇编函数
- 解决了服务器半夜死机的问题,散分!!!
- 菜鸟提问:进程间传递消息!50分,急!!在线等,谢谢
- 求救几个基础问题
- 可用分和信誉分如何增加的啊?
- 帮我分析一下,为什么visibroker smart agent会死?
- tidtcpserver在事件onexecute中,同步的问题? 急!!
- 请问:做Access数据库的安装程序需要把那些access的文件打包?
- 类似3721的IE扩展问题
- 总算想出了一个有点难度的问题,答出再加分,40分吧。准程序员(原老菜鸟)的信誉是可靠的,相信我!
- 求类似用友华表能自定义函数的delphi报表控件
- 报表制作只选部分字段?如何解决?
P : ^Byte;
I : LongInt;
begin
I := 323232;
P := @I; //在Pascal里可以直接把不同类型的对象地址赋给指针
end;
char *p;
int i = 232323;
(int *)p = &i; //在C++里却需要强制转换
C : Char;
P : ^Byte;
begin
C := 'a';
//可以这样:
C := Char(Byte(C) or $80);
//也可以这样:(一楼说过)
P := @C;
P^ := P^ or $80;
//还可以象一楼那样,不过要把0x80按Delphi的表示$80
end;
var
ch: Char;
begin
ch := 'a';
Byte(ch) := Byte(ch) or $80;
end;
麻烦哪位能不能帮我转一下下面的vc程序,谢谢void CodePswd(char *szSrc,char *szDest)
{
unsigned int i;
for(i=0; i<strlen(szSrc)*2;i=i+2 )
{
szDest[i] = 0xb0+i;
szDest[i+1] = szSrc[i/2]|0x80;
}
szDest[i] = 0x00;
}
var
I: Longword;
begin
I := 0;
while I < StrLen(szSrc) * 2 do
begin
Byte(szDest[i]) := $b0 + I;
Byte(szDest[i + 1]) := Byte(szSrc[i div 2]) or $80;
Inc(I, 2);
end;
szDest[i] := #00;
end;procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
CodePswd('Zswang 路过', vBuffer);
Text := vBuffer;
end;