将24个字符保存在12个字节里面?

happy59 2012-11-14 06:51:25
需求:
24个字符序列,每个字符可能取值为数字/大小写字母,即为(0-9|a-z|A-Z)。现要求字符保存在12个字节里面。

求解过程:
如若一个字节保存两个符号,而两个字符的可能组合范围却有62×62种可能,而一个字节最大表示数也只到255,
我这样认为正确吗?求大神相助!谢谢
...全文
460 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
Emiyasstar__ 2012-11-15
  • 打赏
  • 举报
回复
引用 11 楼 Emiyasstar__ 的回复:
ascii范围0~128,把每个byte拆分高4位和低4位,然后保存,刚好压缩一半
我二了,胡话
Emiyasstar__ 2012-11-15
  • 打赏
  • 举报
回复
引用 11 楼 Emiyasstar__ 的回复:
ascii范围0~128,把每个byte拆分高4位和低4位,然后保存,刚好压缩一半
我二了,胡话
Emiyasstar__ 2012-11-15
  • 打赏
  • 举报
回复
引用 11 楼 Emiyasstar__ 的回复:
ascii范围0~128,把每个byte拆分高4位和低4位,然后保存,刚好压缩一半
我二了,胡话
mymtom 2012-11-15
  • 打赏
  • 举报
回复
引用 4 楼 nossiac 的回复:
引用 3 楼 zyb_debug 的回复:理论上 12个字节=12*8 = 96bit = 2^96 = 16^24个数 24个字符 每个字符有62种可能 有62*24种组合 16^24 < 62^24理论上来说是不行的 那你说压缩工具是怎么做出来的……
压缩工具不是对所有的文件都能压缩的。你用rar压缩一个jpg试试就明白了。
mymtom 2012-11-15
  • 打赏
  • 举报
回复
引用 17 楼 nice_cxf 的回复:
都什么跟什么啊 信息论角度看,一共是62^24方种可能,12字节是256^12明显不是够的
++
qq624554195 2012-11-15
  • 打赏
  • 举报
回复
虚拟桌面····
孤影品茗 2012-11-15
  • 打赏
  • 举报
回复
抱歉,犯错误了,上面是我的错,请不要理睬
nice_cxf 2012-11-15
  • 打赏
  • 举报
回复
引用 20 楼 qq624554195 的回复:
麻烦,头疼。
这有什么头疼的,根本不可能的事情。。。。
baichi4141 2012-11-15
  • 打赏
  • 举报
回复
引用 19 楼 zhaowech 的回复:
这并不是不可能的,我说下自己的看法吧,首先将12字节的每个字节拆分成2个6bit,1个6bit可以表示64种可能对么?然后恰好足够映射那62种字符,所以进来一个字符映射到一个6bit,12字节可以完全容纳所需要存储的24字节内容,至于上面说的什么信息量问题,我想在此纠正一下,这里采用的方法是压缩,正因为有压缩和解压缩算法,所以可以让存储信息少于原始信息,如果说要达到62x……
真了不起的纠正,“1个8bit的字节拆分成2个6bit”,鼓掌
孤影品茗 2012-11-15
  • 打赏
  • 举报
回复
引用 20 楼 qq624554195 的回复:
麻烦,头疼。
这么简单都头疼?
qq624554195 2012-11-15
  • 打赏
  • 举报
回复
麻烦,头疼。
孤影品茗 2012-11-15
  • 打赏
  • 举报
回复
这并不是不可能的,我说下自己的看法吧,首先将12字节的每个字节拆分成2个6bit,1个6bit可以表示64种可能对么?然后恰好足够映射那62种字符,所以进来一个字符映射到一个6bit,12字节可以完全容纳所需要存储的24字节内容,至于上面说的什么信息量问题,我想在此纠正一下,这里采用的方法是压缩,正因为有压缩和解压缩算法,所以可以让存储信息少于原始信息,如果说要达到62x62,那是在因为压缩算法太差,导致信息量太大,采用6bit位存储,压缩率恰好是50%,望楼主采纳,这个一定行的
千树之影 2012-11-15
  • 打赏
  • 举报
回复
引用 16 楼 baichi4141 的回复:
要对“大多数情况”有效的算法,应该是存在的 要对“所有情况”有效的算法,恐怕是不存在的 压缩算法都是对大多数情况有效的,任何压缩算法都可以找到一些特定的数据包,压缩之后比压缩之前更大 如果楼主要做的是一个对大多数情况有效的压缩算法,那随便找个压缩算法,都可以对大多数文本达到相当高的压缩率,因为文本包含太多重复数据段,我们称为词汇和常用句 但要对所有情况都有效,我认为,不可能
正解。
nice_cxf 2012-11-15
  • 打赏
  • 举报
回复
都什么跟什么啊 信息论角度看,一共是62^24方种可能,12字节是256^12明显不是够的
baichi4141 2012-11-15
  • 打赏
  • 举报
回复
要对“大多数情况”有效的算法,应该是存在的 要对“所有情况”有效的算法,恐怕是不存在的 压缩算法都是对大多数情况有效的,任何压缩算法都可以找到一些特定的数据包,压缩之后比压缩之前更大 如果楼主要做的是一个对大多数情况有效的压缩算法,那随便找个压缩算法,都可以对大多数文本达到相当高的压缩率,因为文本包含太多重复数据段,我们称为词汇和常用句 但要对所有情况都有效,我认为,不可能
smsgreenlife 2012-11-14
  • 打赏
  • 举报
回复
就三个字,不可能! 谁要是能搞出来,他就能得图灵奖了! 你们要是觉得自己能,就说的详细点,不要说的不明不白的在这忽悠人!
Emiyasstar__ 2012-11-14
  • 打赏
  • 举报
回复
ascii范围0~128,把每个byte拆分高4位和低4位,然后保存,刚好压缩一半
nossiac 2012-11-14
  • 打赏
  • 举报
回复
引用 9 楼 zyb_debug 的回复:
12个字节=12*8 = 96bit = 2^96 = 16^24个数 24个字符 每个字符有62种可能 有62*24种组合 16^24 < 62^24理论上来说是不行的
嗯,我理解错题意了。压缩工具用的方式在这里确实用不上。
zyb_debug 2012-11-14
  • 打赏
  • 举报
回复
引用 4 楼 nossiac 的回复:
引用 3 楼 zyb_debug 的回复:理论上 12个字节=12*8 = 96bit = 2^96 = 16^24个数 24个字符 每个字符有62种可能 有62*24种组合 16^24 < 62^24理论上来说是不行的 那你说压缩工具是怎么做出来的……
我还是那句话,理论上不行。压缩工具自有压缩工具的算法,和本题目毫不相干。
nossiac 2012-11-14
  • 打赏
  • 举报
回复
引用 6 楼 gohay1 的回复:
引用 1 楼 JiMoKuangXiangQu 的回复:将每个字母映射到一个bit就可以了,24个字节有24*8 = 192个bit,按bit就可以表示192个不同的字母. 而0-9,a-z,A-Z总共有10 + 26 + 26 = 62个字母. 还可以将24个字节看成一个大整数,共可以表示2 ^ 192 个不同的字母了. 个人意见,仅供参考. 按照这位兄……
你确定?? 这位兄台说的跟题目貌似差的老远啊……
加载更多回复(7)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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