1。sql字元與位的互轉
create function f_chg1 (@temp varchar(8))
returns char(1)
as
begin
declare @i int
declare @n int
declare @c char(1)
set @i = 0
set @n = 0
while @temp <> ''
begin
set @i = @i + power(2,@n) * cast(right(@temp,1) as int)
set @temp = left(@temp,len(@temp) -1 )
set @n = @n + 1
end
set @c = char(@i)
return(@c)
end
go
create function f_chg2 (@c char(1))
returns char(8)
as
begin
declare @temp varchar(8)
declare @i int
set @temp = ''
set @i = ascii(@c)
while @i > 0
begin
set @temp = @temp + cast(@i%2 as varchar(1))
set @i = ceiling( @i / 2 )
end
set @temp = reverse(@temp)
return(@temp)
end
go
select dbo.f_chg2('c')
--01100011
select dbo.f_chg1('01100011')
--c
select dbo.f_chg2(dbo.f_chg1('11111111'))
--11111111
2.進製的轉換
--十進位制轉化為二進位制數
create function dec_bin(@decimal int)
returns varchar(20)
as
begin
declare @bin varchar(20)
set @bin=''
while @decimal!=0
begin
set @bin=cast(@decimal%2 as varchar(20))+@bin
set @decimal=@decimal/2
end
return(@bin)
end
select dbo.dec_bin(9)
--十進位制轉化為八進位制數
create function dec_hex(@decimal int)
returns varchar(20)
as
begin
declare @bin varchar(20)
set @bin=''
while @decimal!=0
begin
set @bin=cast(@decimal%8 as varchar(20))+@bin
set @decimal=@decimal/8
end
return(@bin)
end
select dbo.dec_hex(10)
C 中的位操作
位操作符是對資料按二進位制位進行運算的操作符。c 位操作符包括 按位與 按位或 按位取反 左移 右移 舉例說明 using system class mikecat a 6的二進位制是00000110,3的二進位制是00000011,按位與後等於00000010,即2。int b 6 3 conso...
c c 中的位操作
c c 支援比較低階的位運算,在是眾人皆知的了。每本c c 的教科書都會說到這部分的內容,不過都很簡略,我想會有很多人不知道位運算用在什麼地方。這個帖子就簡略說說位運算的用處,更進一步的用法要大家自己去體會。而主要說的是操作標誌值方面。define bti msk bit 1 bit define ...
C 中的位操作
位操作符是對資料按二進位制位進行運算的操作符。c 位操作符包括 舉例說明 using system class mikecat a 6的二進位制是00000110,3的二進位制是00000011,按位與後等於00000010,即2。int b 6 3 console.writeline b b 6的...