按位移运算符(>>)和按位与运算符(&)的反运算时什么样的 比如 int i = 9; int j = 13; int k = (i&j)>>2;怎么通过 k与j 的相关运算再得到 i 的值呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知所云.i是:1001j是:1101i&j是:1001. >>2:结果是0010.就是2 理论上不可逆的。简单说,因为 >> 运算,会丢失一些信息。因为当i = 11;的时候你会发现k的值依然是2,那么通过2和j的值,怎么知道i是9,还是11呢?也就是说,不可逆。 哪怕是 k = i & j 的话,都回不去了。因为 0 & 0 = 0, 1 & 0 = 0,如果 k 某位是 0,而 j 的那一位也是 0,那你说 i 的那一位是 0 还是 1 呢? i是:1001 j是:1101 i&j是:1001. >>2:结果是0010.就是2 如果是想达到简单的编码。又方便的解码。便宜又实惠的方法就是异或,异或c编码,再异或c就回来了。按位与和移位(循环移位例外,但java好像没有)会造成源字符单元信息丢失,毕竟能表示的位变少了:比如,10010011,11001001这种1个字节内容你最多能表示的信息量就是256种,但你如果按位与了00001111(15)则有效位就变成了4位,那你所有信息量最大就16种,只要有字符用到了高4位,就必定存在信息丢失。 eclipse是否自带了JDK和JRE,如果不是,那是否要去官网分别下载JDK和JRE 求教高手:java绘图的小问题 多线程下载 老出现 “暂停现象”? JSP页面传递中文到SERVLET乱码(求高手解决) 简单问题 在线时间的转换 如何用JAVA实现对SQLSERVER数据库的备份和恢复 大家做GUI的时候都用javax.swing.* 这个包、有没有别的啊? 字符串数组的问题 谁能具体介绍一下jtable? 回复代码怎么卸载框框里啊? JTable HTML标签 单元格显示空白
j是:1101i&j是:1001. >>2:结果是0010.就是2
当i = 11;的时候
你会发现k的值依然是2,那么通过2和j的值,怎么知道i是9,还是11呢?也就是说,不可逆。
j是:1101 i&j是:1001. >>2:结果是0010.就是2
按位与和移位(循环移位例外,但java好像没有)会造成源字符单元信息丢失,毕竟能表示的位变少了:比如,10010011,11001001这种1个字节内容你最多能表示的信息量就是256种,但你如果按位与了00001111(15)则有效位就变成了4位,那你所有信息量最大就16种,只要有字符用到了高4位,就必定存在信息丢失。