在短时间内替换多个位[关闭]
Posted
技术标签:
【中文标题】在短时间内替换多个位[关闭]【英文标题】:Replace multiple bits in a short [closed] 【发布时间】:2016-03-13 22:26:44 【问题描述】:如何在 Java 中替换 short 中的多个位?
我正在研究一种加密算法,我需要执行以下操作:
我很短,需要应用一系列 4 位替换。
示例:如果前4位是0010
,则替换为0110
,如果是1111
,则替换为1100
,依此类推,后4位相同。
最好/最快的方法是什么?目前,我将 short 转换为 String 并使用 String 替换来完成,但它显然非常慢,在我看来这是绝对错误的方式。
【问题讨论】:
您认为正确的方法是什么?你是如何尝试实现它的,你遇到了什么问题?显示您的代码... 我投票决定将此问题作为题外话来结束,因为如果您在作业上需要帮助,您必须先自己努力。 【参考方案1】:位算术,类似这样:
short s = 191;
short first = (short) (s & 0x000F);
short second = (short) ((s >> 4) & 0x000F);
short third = (short) ((s >> 8) & 0x000F);
short fourth = (short) ((s >> 12) & 0x000F);
call_the_method_to_convert_each();
s = fourth;
s = ((short) ((s << 4) | third));
s = ((short) ((s << 4) | second));
s = ((short) ((s << 4) | first));
【讨论】:
效果完全一样,谢谢!以上是关于在短时间内替换多个位[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
替换多个文件中的多行长文本(notepad++ 或其他解决方案)