前些日子在某Q群中和一些人聊天,突然有个拉卡拉的哥们说别整天扯淡,应该聊聊技术,发了这么个小题目。java中如何让1+1=3
我和大多数程序猿一样,我们都喜欢在网上看人家的帖子,但是都懒得自己写...
今天正好得空~~~
想着写点什么吧~~
想着写点什么吧~~
改变从来都不晚,不是么~~
我本人是个长期做物联网项目的人,第一反应自然是进制转换,希望你的第一反应不是System.out.println("1+1=3")...
既然是进制转换,那么我首先想到的是Integer的valueOf方法,虽说有一些方法自己手写可能更高效,但是这种基础需求,JDK自带的方法足以。
以下是我的代码:
我本人是个长期做物联网项目的人,第一反应自然是进制转换,希望你的第一反应不是System.out.println("1+1=3")...
既然是进制转换,那么我首先想到的是Integer的valueOf方法,虽说有一些方法自己手写可能更高效,但是这种基础需求,JDK自带的方法足以。
以下是我的代码:
/**
*
* 项目名称:Demo
* 类名称:StringToBinary
* 类描述:java实现1+1=3
* 创建人:prophethunter
* 创建时间:2014-12-12 上午9:49:40
* 修改人:prophethunter
* 修改时间:2014-12-12 上午9:49:40
* 修改备注:无
* @version v1.0
*
*/
public class StringToBinary
{
public static void main(String[] args)
{
//声明了2个String的变量num1、num2,并赋值为1
String num1 = "1";
String num2 = "1";
/*
用Integer的valueOf方法将"11"这个字符串转化为2进制并赋值给int的result变量,
值得一提的是,只要你的String变量的值合法,valueOf的第二个参数是你填几就是几进制
*/
int result = Integer.valueOf(num1+num2, 2);
System.out.println(result);
}
}
关于valueOf相关的api这里便不再赘述,请自行查阅,不要问我为什么,43程序员不关心为什么,苦B程序员自己研究一下就明白了。
我写完这段代码之后,在百度里随手搜了一下,看到了这篇帖子http://alvez.blog.51cto.com/7711135/1543281,它里面提到了一个了一个并不常用的函数printf,写JAVA很久,我几乎没有怎么用过这个函数。简单的说一下这个printf,它和 println的区别在于println 对于不同的基本类型都提供了overwrite,而printf并没有为基本类型提供方法。作者为此写了一堆相较复杂的代码,却并没有指明其在现实开发中的应用,这样看起来十分高大上,但是就实际开发来说,用到的并不多。 任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。而如果你需要用到socket和下位机通信,valueOf这个函数可以说相当常用。
下一篇,我将简单的谈一下使用byte在socket通信中容易遇到的问题和处理的方法。