【交流贴】欢迎大家来批判,各进制之间的转换

让你望见影子的墙 2009-07-07 04:24:21
加精
争取用最简短的语句来写出来,水平有限,欢迎大家来拍砖。觉得没用可以一笑了之。
详情见:
http://blog.csdn.net/HEROWANG/archive/2009/07/07/4328258.aspx
http://blog.csdn.net/HEROWANG/archive/2009/07/07/4328500.aspx

原文:
/***********************************

作者:trieagle(让你望见影子的墙)

日期:2009.7.7

注: 转载请保留此信息

************************************/

-----二进制转换十进制-----------------
select sum(data1)
from ( select substring('11011', number,
1)*power(2,len('11011')-number)data1
from (select number from master.dbo.spt_values where type='p')K
where number <= len('11011')
) L
结果:
27
-----八进制转换十进制-----------------
select sum(data1)
from ( select substring('1234567', number, 1)*power(8,len('1234567')-number)data1
from (select number from master.dbo.spt_values where type='p')K
where number <= len('1234567')
) L
结果:
342391
-----十六进制转换十进制-----------------
select sum(data1)
from ( select case upper(substring('4eb7', number, 1)) when 'A' then 10
when 'B' then 11
when 'C' then 12
when 'D' then 13
when 'E' then 14
when 'F' then 15
else substring('4eb7', number, 1)
end* power(16, len('4eb7') - number) data1
from (select number from master.dbo.spt_values where type='p')K
where number <= len('4eb7')
) L
结果:
20151

-----十进制转换二进制-----------------
declare @i int,@s varchar(10)
set @i=27
set @s=''
select @s=cast(@i%2 as varchar)+@s,@i=@i/2
from (select number from master.dbo.spt_values where type='p' and number<10 and power(2,number)<@i)K
order by number desc
select @s
结果:
11011
-----十进制转换八进制-----------------
declare @i int,@s varchar(10)
set @i=27
set @s=''
select @s=cast(@i%8 as varchar)+@s,@i=@i/8
from (select number from master.dbo.spt_values where type='p' and number<10 and power(8,number)<@i)K
order by number desc
select @s
结果:
33
-----十进制转换十六进制-----------------
declare @i int,@s varchar(10)
set @i=2379
set @s=''
select @s=case when @i%16 between 10 and 15 then char( @i%16+55) else cast(@i%16 as varchar) end +@s,@i=@i/16
from (select number from master.dbo.spt_values where type='p' and number<10 )K
order by number desc
select @s
结果:
94B

还有二进制向8进制,16进制,8进制、16进制象二进制,待续。
...全文
508 73 打赏 收藏 转发到动态 举报
写回复
用AI写文章
73 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunflowerxy 2010-12-07
  • 打赏
  • 举报
回复
谢谢分享~~~mark
tt007007007 2010-04-28
  • 打赏
  • 举报
回复
studying
gongyuanh 2009-12-24
  • 打赏
  • 举报
回复
MARK
纸纸纸纸飞飞 2009-10-12
  • 打赏
  • 举报
回复
先留住,学习。。。
yygyogfny 2009-07-13
  • 打赏
  • 举报
回复
学习
winstonbonaparte 2009-07-13
  • 打赏
  • 举报
回复
收藏了
wubai21 2009-07-13
  • 打赏
  • 举报
回复
没见过?额……
gggdwdn 2009-07-13
  • 打赏
  • 举报
回复
我看好多人都是为了那10分回复分,不懂也不问,哎现在的人都太虚伪啦
怀念十月 2009-07-13
  • 打赏
  • 举报
回复
学习了.//
beeprog 2009-07-11
  • 打赏
  • 举报
回复
俺是菜鸟,编译器不会自己转换吗?
我听说C编译器可以自动转换的嘛!
int a;
printf(a,&f);
格式化字符串行不行?
KiteGirl 2009-07-11
  • 打赏
  • 举报
回复
以前曾经写过“任意进制转换”,我给你找找的。
lgx0914 2009-07-11
  • 打赏
  • 举报
回复
收藏
lgx0914 2009-07-11
  • 打赏
  • 举报
回复
收藏
yinfie 2009-07-11
  • 打赏
  • 举报
回复
不能直接用库函数吗?
snailiest 2009-07-10
  • 打赏
  • 举报
回复
有点意思。
AlfredJ 2009-07-10
  • 打赏
  • 举报
回复
研究
hhwei1985 2009-07-10
  • 打赏
  • 举报
回复
up
robinfung 2009-07-10
  • 打赏
  • 举报
回复
mark
naziace 2009-07-10
  • 打赏
  • 举报
回复
learn
soft_wsx 2009-07-10
  • 打赏
  • 举报
回复
呵呵,支持
加载更多回复(49)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧