1111000111000111111111111
0101011110100011110001111
这样的两个串如何求同样位置都是1的总数?
0101011110100011110001111
这样的两个串如何求同样位置都是1的总数?
解决方案 »
- 请问一个判断stringgrid为空怎么写啊
- 郁闷,散分,为什么我发的帖子都没有人回呢?可惜级数不够,不能一次全部散了
- 请问用Delphi怎么做呢高分:请问我有两个安装程序我想在第一个安装程序,安装完以后。再执行第二个安装程序。
- 大家出出主义吧!
- 我把报表转换为bmp图片再去打印,原来的纸就打印不下了,有什么办法解决呢?
- ★★★我的DELPHI程序想减肥!★★★
- 一只菜鸟求教一个字符转换的问题。。。。?
- 我想和李维请教问题是可能行不大,相信我们大本营里应该有高手看过李维的书!!!他的程序我运行出错!!!帮帮忙
- 键盘上的Scroll Lock键有什么用?它的扫描码是什么?
- 中文版的Delphi?
- 为何数据库查询时候线程会停止?高手请
- 如何捕捉到用户是按着 Shift 点某.Exe 程序的?
0101011110100011110001111
这样的两个串如何求同样位置都是1的总数?var
s1,s2: string;
i,count: Integer;
begin
s1 := '1111000111000111111111111';
s2 := '0101011110100011110001111';
count := 0;
for I := 1 to Length(s1) do
if (Byte(s1[1]) and Byte(s2[1])=1 then Inc(Count);
ShowMessage('同样位置都是1的总数:'IntToStr(Count));
end;
if (Byte(s1[I]) and Byte(s2[I])=1 then Inc(Count); //写错,这里是s1[I]和s2[I]
procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2: string;
i,count: Integer;
begin
s1 := '1111000111000111111111111';
s2 := '0101011110100011110001111';
count := 0;
for I := 1 to Length(s1) do
if (StrToInt(s1[I]) and StrToInt(s2[I]))= 1 then Inc(Count);
ShowMessage('同样位置都是1的总数:'+IntToStr(Count));
end;
s1,s2: string;
i,count: Integer;
begin
s1 := '1111000111000111111111111';
s2 := '0101011110100011110001111';
count := 0;
for I := 1 to Length(s1) do
if (StrToInt(s1[I]) and StrToInt(s2[I]))= 1 then Inc(Count);
ShowMessage('counts:'+IntToStr(Count));
end;
SELECT CAST(str1 AS binary) AS Expr1, CAST(str2 AS binary) AS Expr2, len(REPLACE(CAST(CAST(str1 AS binary) + CAST(str2 AS binary))
AS varchar), '0', '') AS Expr3, id
FROM dbo.Table_1LEN这个函数是我想求字串长度的,可是错了
unsigned long CountBit(unsigned long X){X = (X & 0x55555555) + (X >> 1 & 0x55555555);X = (X & 0x33333333) + (X >> 2 & 0x33333333);X = (X & 0x0F0F0F0F) + (X >> 4 & 0x0F0F0F0F);X = (X & 0x00FF00FF) + (X >> 8 & 0x00FF00FF);X = (X & 0x0000FFFF) + (X >> 16 & 0x0000FFFF);return(X);}
/*
0x55555555: 01010101010101010101010101010101
0x33333333: 00110011001100110011001100110011
0x0F0F0F0F: 00001111000011110000111100001111
0x00FF00FF: 00000000111111110000000011111111
0x0000FFFF: 00000000000000001111111111111111
*/
INTO table_500
FROM syscolumns a, syscolumns b
SELECT id, str1, str2, ISNULL
((SELECT COUNT(*) AS Expr1
FROM dbo.table_500
WHERE (SUBSTRING(dbo.Table_1.str1, id, 1) = '1') AND (SUBSTRING(dbo.Table_1.str2, id, 1) = '1')), 0) AS Expr1
FROM dbo.Table_1 DROP TABLE table_500
var
s1,s2: string;
i,count: Integer;
begin
s1 := '1111000111000111111111111';
s2 := '0101011110100011110001111';
count := 0;
for I := 1 to Length(s1) do
if (StrToInt(s1[I]) and StrToInt(s2[I]))= 1 then Inc(Count);
ShowMessage('同样位置都是1的总数:'+IntToStr(Count));
end;
====================================================
你用S1='1';
s2='0';
试下