createfunction bin2dec(@svarchar(255) )
--二进制转化为十进制
returnsint
as
begin
declare@iint, @tempchar(1), @resultint
select@i=1
select@result=0
while (@i<=len(@s))
begin
select@temp=substring(@s,@i,1)
select@result=@result+ (ascii(@temp)-48)*power(2,len(@s)-@i)
select@i=@i+1
end
return@result
end
createfunction dec2bin(@nint )
--十进制转化为二进制
returnsvarchar(255)
as
begin
declare@iint,@tempint, @svarchar(255)
set@i=@n
set@s=''
while (@i>0)
begin
set@temp=@i%2
set@i=@i/2
set@s=ltrim(@temp)+@s
end
return@s
end
select[位]=dbo.dec2bin(dbo.bin2dec(11001100)&dbo.bin2dec(11110000))
位与
-------------------
11000000
select[位]=dbo.dec2bin(dbo.bin2dec(11001100)|dbo.bin2dec(11110000))
位或
------------------
11111100