导航
  • 全部
...

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

让你望见影子的墙 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

注: 转载请保留此信息

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

  1. -----二进制转换十进制-----------------
  2. select sum(data1)
  3. from ( select substring('11011', number,
  4. 1)*power(2,len('11011')-number)data1
  5. from (select number from master.dbo.spt_values where type='p')K
  6. where number <= len('11011')
  7. ) L
  8. 结果:
  9. 27
  10. -----八进制转换十进制-----------------
  11. select sum(data1)
  12. from ( select substring('1234567', number, 1)*power(8,len('1234567')-number)data1
  13. from (select number from master.dbo.spt_values where type='p')K
  14. where number <= len('1234567')
  15. ) L
  16. 结果:
  17. 342391
  18. -----十六进制转换十进制-----------------
  19. select sum(data1)
  20. from ( select case upper(substring('4eb7', number, 1)) when 'A' then 10
  21. when 'B' then 11
  22. when 'C' then 12
  23. when 'D' then 13
  24. when 'E' then 14
  25. when 'F' then 15
  26. else substring('4eb7', number, 1)
  27. end* power(16, len('4eb7') - number) data1
  28. from (select number from master.dbo.spt_values where type='p')K
  29. where number <= len('4eb7')
  30. ) L
  31. 结果:
  32. 20151

  33. -----十进制转换二进制-----------------
  34. declare @i int,@s varchar(10)
  35. set @i=27
  36. set @s=''
  37. select @s=cast(@i%2 as varchar)+@s,@i=@i/2
  38. from (select number from master.dbo.spt_values where type='p' and number<10 and power(2,number)<@i)K
  39. order by number desc
  40. select @s
  41. 结果:
  42. 11011
  43. -----十进制转换八进制-----------------
  44. declare @i int,@s varchar(10)
  45. set @i=27
  46. set @s=''
  47. select @s=cast(@i%8 as varchar)+@s,@i=@i/8
  48. from (select number from master.dbo.spt_values where type='p' and number<10 and power(8,number)<@i)K
  49. order by number desc
  50. select @s
  51. 结果:
  52. 33
  53. -----十进制转换十六进制-----------------
  54. declare @i int,@s varchar(10)
  55. set @i=2379
  56. set @s=''
  57. 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
  58. from (select number from master.dbo.spt_values where type='p' and number<10 )K
  59. order by number desc
  60. select @s
  61. 结果:
  62. 94B

还有二进制向8进制,16进制,8进制、16进制象二进制,待续。
...全文
给本帖投票
547 73 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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,581

社区成员

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

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

手机看
关注公众号

关注公众号

客服 返回
顶部