Here is an integer base converter which I wrote:
Note how we can now call methods on the integers themselves
object Types {
case class NumberConverter(val i : Int) {
def octal = BaseBuilder(i, 8)
def hex = BaseBuilder(i, 16)
def mybase(base : Int) = BaseBuilder(i, base)
}
def BaseBuilder(i : Int, base : Int) : String = {
i match {
case 0 => ""
case _ => BaseBuilder(i/base, base) + baseToCharacter(i % base)
}
}
def baseToCharacter(i : Int) : String = {
return "" + {
if ( (0 to 9).contains(i) ) {
i
} else {
(i + 55).toChar
}
}
}
implicit def baseConverter(i : Int) : NumberConverter = NumberConverter(i)
def main(args : Array[String]) : Unit = {
println( 29 )
println( 29.hex )
println( 29.octal )
println( 15.mybase(16) )
println( 129.mybase(2) )
}
}
No comments:
Post a Comment