再来一道笔试题:写一个函数将两个字节拼成一个短整型(java) RT,例如:当high=0x57,low=0x90,函数返回0x5790。short combind(byte high,byte low)请高手将一下思路和算法 谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果说将两个小于十的整数拼成一个两位数的话是10*x+y那么两个字节拼成一个短整型不就是2^8 * x + y么?short combind(byte high,byte low){ return (high * 256 + low);} short combind(byte high,byte low){ int ret = (int)high; ret = (ret<<8)+low; return (short)ret; } 笨男人说的好像不对哦,zhmt能不能给讲一下为什么要<<8啊?谢谢 我有个朋友给出的是下面这样,高手给解释一下嘛,我朋友没时间给我讲 晕short combind(byte high,byte low){ return(short)(((high<<8)&0xFF00)|(low&0xFF));} 它那个&操作没必要啊,在这里又不会溢出 为什么要乘256,因为,high要放到高字节,而一个字节是8位,所以它就相当于向左移动了8位。而向左每移动一位就相当于乘于2,所以,移动8位就是2的8次方=256。 没念过大学啊 有没有专门讲基础知识的书啊?讲java的好多都只讲java的类。。 看看最基础的数据结构资料。现在讲JAVA的书,很“专业”,很多基础的东西都不讲。我觉得最好是先看基础之后再学编程,不然会觉得很浮。当初我学C就觉得不踏实,自己又看了汇编,反回来再看C就觉得畅通无阻了。 public int change(int high,int low) { String s=String.valueOf(high)+String.valueOf(low); int a; a=Integer.valueOf(s).intValue(); return a; }核心算法. 大学时有一本很薄的清华出的java教程,说过这个问题 short combind(byte high,byte low){return (high << 8) | (0x00FF & low);} 高位不会溢出,低位如果是负值就会溢出比如high=0xF0,low=0xF0那么(0xF0<<8) | 0xF0 == 0xFFF0<<8 | 0xFFF0 == 0x00F0<<8 | 0xFFF0而我们需要的是(0xFFF0<<8) | (0x00FF & 0xFFF0) == 0xFFF0<<8 | 0x00F0 == 0x00F0<<8 | 0x00F0 java读取Excel指定列的数据到并写入新的Excel中 clone问题 连接access数据库bean的问题,等待高手 怎样动态执行一段JAVA代码 关于线程的题: 这个怎么做? return语句,,大家来看看那种代码风格比较好. 有没有什么类或者什么方法将中文转换成....,例如"我们",转换以后UNICODE码是"\u6211\u4EEC" 大虾帮忙,"="键触发KeyEvent事件中哪个常量? 二维数组出错,求大神! java API 里 io.readLine()怎用? java中如何获得当时的时间?
那么两个字节拼成一个短整型不就是2^8 * x + y么?short combind(byte high,byte low){
return (high * 256 + low);
}
int ret = (int)high;
ret = (ret<<8)+low;
return (short)ret;
}
short combind(byte high,byte low){
return(short)(((high<<8)&0xFF00)|(low&0xFF));
}
现在讲JAVA的书,很“专业”,很多基础的东西都不讲。
我觉得最好是先看基础之后再学编程,不然会觉得很浮。
当初我学C就觉得不踏实,自己又看了汇编,反回来再看C就觉得畅通无阻了。
{
String s=String.valueOf(high)+String.valueOf(low);
int a;
a=Integer.valueOf(s).intValue();
return a;
}
核心算法.
return (high << 8) | (0x00FF & low);
}
比如high=0xF0,low=0xF0那么
(0xF0<<8) | 0xF0 == 0xFFF0<<8 | 0xFFF0 == 0x00F0<<8 | 0xFFF0
而我们需要的是
(0xFFF0<<8) | (0x00FF & 0xFFF0) == 0xFFF0<<8 | 0x00F0 == 0x00F0<<8 | 0x00F0