declare @str1 nvarchar(50) declare @str2 nvarchar(50) set @str1='-10000100001000000010001000000' set @str2='-00000010001010000010001000001' set @str1=replace(replace(@str1,'-',''),'+','') set @str2=replace(replace(@str2,'-',''),'+','') declare @str nvarchar(50),@s1 nvarchar,@s2 nvarchar set @str='' while(len(@str1)>0) begin set @s1=right(@str1,1) set @s2=right(@str2,1) if(@s1=@s2) set @str='0'+@str else set @str='1'+@str set @str1=left(@str1,len(@str1)-1) set @str2=left(@str2,len(@str2)-1) end select @str
declare @str1 nvarchar(50) declare @str2 nvarchar(50) set @str1='-10000100001000000010001000000' set @str2='-00000010001010000010001000001' set @str1=replace(replace(@str1,'-',''),'+','') set @str2=replace(replace(@str2,'-',''),'+','') declare @n1 bigint,@n2 bigint set @n1=cast(right(@str1,19) as bigint)+cast(right(@str2,19) as bigint) set @n2=cast(left(@str1,len(@str1)-19) as bigint)+cast(left(@str2,len(@str2)-19) as bigint) select replace(ltrim(@n2)+ltrim(@n1),'2','0')
declare @str1 nvarchar(50)declare @str2 nvarchar(50), @str3 nvarchar(50)set @str1='10000100001000000010001000000' set @str2='00000010001010000010001000001' declare @i int set @I = len(@str1)while @I >= 1 begin set @str3 = case when substring(@str1,@i,1) = substring(@str2,@i,1) then '0' else '1' end+isnull(@str3,'') set @I = @i - 1 endprint @str3 /*10000100001000000010001000000 0000001000101000001000100000110000110000010000000000000001*/
declare @str1 nvarchar(50)declare @str2 nvarchar(50), @str3 nvarchar(50)set @str1='10000100001000000010001000000' set @str2='00000010001010000010001000001' declare @i intset @I = len(@str1)while @I >= 1 begin set @str3 = ltrim(cast(substring(@str1,@i,1) as int) ^ cast(substring(@str2,@i,1) as int))+isnull(@str3,'') set @I = @i - 1 endprint @str3/*10000100001000000010001000000 0000001000101000001000100000110000110000010000000000000001 */
declare @str1 nvarchar(50) declare @str2 nvarchar(50) set @str1='10000100001000000010001000000' set @str2='00000010001010000010001000001'declare @len int, @str3 nvarchar(50),@1 bit,@2 bit,@i intif len(@str1)>len(@str2) begin set @str3=left(@str1,len(@str1)-len(@str2)) set @len=len(@str2) end else begin set @str3=left(@str2,len(@str2)-len(@str1)) set @len=len(@str1) endset @i=1while @i<=@len begin select @1=substring(@str1,@i,1), @2=substring(@str2,@i,1) set @str3=@str3+ltrim(@1|@2) set @i=@i+1 endselect @str3 -- 10000110001010000010001000001
declare @str1 nvarchar(50)
declare @str2 nvarchar(50)
set @str1='-10000100001000000010001000000'
set @str2='-00000010001010000010001000001'
set @str1=replace(replace(@str1,'-',''),'+','')
set @str2=replace(replace(@str2,'-',''),'+','')
declare @str nvarchar(50),@s1 nvarchar,@s2 nvarchar
set @str=''
while(len(@str1)>0)
begin
set @s1=right(@str1,1)
set @s2=right(@str2,1)
if(@s1=@s2)
set @str='0'+@str
else
set @str='1'+@str
set @str1=left(@str1,len(@str1)-1)
set @str2=left(@str2,len(@str2)-1)
end
select @str
declare @str1 nvarchar(50)
declare @str2 nvarchar(50)
set @str1='-10000100001000000010001000000'
set @str2='-00000010001010000010001000001'
set @str1=replace(replace(@str1,'-',''),'+','')
set @str2=replace(replace(@str2,'-',''),'+','')
declare @n1 bigint,@n2 bigint
set @n1=cast(right(@str1,19) as bigint)+cast(right(@str2,19) as bigint)
set @n2=cast(left(@str1,len(@str1)-19) as bigint)+cast(left(@str2,len(@str2)-19) as bigint)
select replace(ltrim(@n2)+ltrim(@n1),'2','0')
set @str2='00000010001010000010001000001'
declare @i int
set @I = len(@str1)while @I >= 1
begin
set @str3 = case when substring(@str1,@i,1) = substring(@str2,@i,1) then '0' else '1' end+isnull(@str3,'')
set @I = @i - 1
endprint @str3
/*10000100001000000010001000000
0000001000101000001000100000110000110000010000000000000001*/
set @str2='00000010001010000010001000001'
declare @i intset @I = len(@str1)while @I >= 1
begin
set @str3 = ltrim(cast(substring(@str1,@i,1) as int) ^ cast(substring(@str2,@i,1) as int))+isnull(@str3,'')
set @I = @i - 1
endprint @str3/*10000100001000000010001000000
0000001000101000001000100000110000110000010000000000000001
*/
declare @str2 nvarchar(50)
set @str1='10000100001000000010001000000'
set @str2='00000010001010000010001000001'declare @len int, @str3 nvarchar(50),@1 bit,@2 bit,@i intif len(@str1)>len(@str2)
begin
set @str3=left(@str1,len(@str1)-len(@str2))
set @len=len(@str2)
end
else
begin
set @str3=left(@str2,len(@str2)-len(@str1))
set @len=len(@str1)
endset @i=1while @i<=@len
begin
select @1=substring(@str1,@i,1), @2=substring(@str2,@i,1)
set @str3=@str3+ltrim(@1|@2)
set @i=@i+1
endselect @str3 -- 10000110001010000010001000001
a ^= b;