<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: base code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 24 Jul 2008 21:15:54 GMT</pubDate>
    <description>DZone Snippets: base code</description>
    <item>
      <title>How to call a base class method</title>
      <link>http://snippets.dzone.com/posts/show/5082</link>
      <description>This Ruby example demonstrates using the keyword super to call the superclass method.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;class Claw&lt;br /&gt;  def grab(item)&lt;br /&gt;    puts item + ' grabbed'&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class Hand &lt; Claw&lt;br /&gt;  def grab(item)&lt;br /&gt;    super(item)&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;h = Hand.new&lt;br /&gt;h.grab('apple')&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;output &lt;br /&gt;&lt;code&gt;&lt;br /&gt;apple grabbed&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;for more information: http://www.google.com/search?q=ruby+keyword+super</description>
      <pubDate>Sat, 02 Feb 2008 00:51:59 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5082</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Custom base conversion (to and from)</title>
      <link>http://snippets.dzone.com/posts/show/4594</link>
      <description>Handy to store large numbers in a shorter notation. Doesn't work with negative numbers (for negative numbers you need to store an additional byte to indicate a positive or negative value, pass the absolute value).&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;	private static final short BASE_40_RADIX = 40;&lt;br /&gt;	private static final short BASE_40_BASE = 48;&lt;br /&gt;	private static final String BASE_40_ZERO = "0";&lt;br /&gt;&lt;br /&gt;	public static long fromBase40(char[] cs) {&lt;br /&gt;		return fromBase(cs, BASE_40_BASE, BASE_40_RADIX);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public static char[] toBase40(final long i) {&lt;br /&gt;		return toBase(i, BASE_40_BASE, BASE_40_RADIX, BASE_40_ZERO);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static final short BASE_75_RADIX = 75;&lt;br /&gt;	private static final short BASE_75_BASE = 48;&lt;br /&gt;	private static final String BASE_75_ZERO = "0";&lt;br /&gt;&lt;br /&gt;	public static long fromBase75(char[] cs) {&lt;br /&gt;		return fromBase(cs, BASE_75_BASE, BASE_75_RADIX);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public static char[] toBase75(final long i) {&lt;br /&gt;		return toBase(i, BASE_75_BASE, BASE_75_RADIX, BASE_75_ZERO);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static final short BASE_90_RADIX = 90;&lt;br /&gt;	private static final short BASE_90_BASE = 33;&lt;br /&gt;	private static final String BASE_90_ZERO = "!";&lt;br /&gt;&lt;br /&gt;	public static long fromBase90(char[] cs) {&lt;br /&gt;		return fromBase(cs, BASE_90_BASE, BASE_90_RADIX);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public static char[] toBase90(final long i) {&lt;br /&gt;		return toBase(i, BASE_90_BASE, BASE_90_RADIX, BASE_90_ZERO);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static char[] toBase(final long i, final short base, final short radix, String nullCharacter) {&lt;br /&gt;		long value = i;&lt;br /&gt;&lt;br /&gt;		if (value == 0) {&lt;br /&gt;			return nullCharacter.toCharArray();&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		String result = "";&lt;br /&gt;		while (value &gt; 0) {&lt;br /&gt;			long mod = value % radix;&lt;br /&gt;			value -= mod;&lt;br /&gt;			if (value &gt; 0) value /= radix;&lt;br /&gt;			result = (char)(mod + base) + result;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		return result.toCharArray();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static long fromBase(char[] cs, final short base, final short radix) {&lt;br /&gt;		long value = 0;&lt;br /&gt;		for (int i = cs.length - 1; i &gt;= 0; i--) {&lt;br /&gt;			int digit = ((int)cs[i]) - base;&lt;br /&gt;			if (digit &lt; 0 || digit &gt;= radix) {&lt;br /&gt;				throw new IllegalArgumentException("Invalid Base" + radix + " character: " + cs[i]);&lt;br /&gt;			}&lt;br /&gt;			long digitBase = (long)Math.pow(radix, (cs.length - 1) - i);&lt;br /&gt;			value = (digit * digitBase) + value;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		return value;&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And here are some tests:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;	public void testFromBase40() {&lt;br /&gt;		assertEquals(2559999, NumberUtils.fromBase40("WWWW".toCharArray()));&lt;br /&gt;		assertEquals(1117580, NumberUtils.fromBase40("ABCD".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(0, NumberUtils.fromBase40("0".toCharArray()));&lt;br /&gt;		assertEquals(1, NumberUtils.fromBase40("1".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(40, NumberUtils.fromBase40("10".toCharArray()));&lt;br /&gt;		assertEquals(80, NumberUtils.fromBase40("20".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(41, NumberUtils.fromBase40("11".toCharArray()));&lt;br /&gt;		assertEquals(81, NumberUtils.fromBase40("21".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(81, NumberUtils.fromBase40("0021".toCharArray()));&lt;br /&gt;&lt;br /&gt;		assertEquals(3061560805L, NumberUtils.fromBase40("MSTSD5".toCharArray()));&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void testToBase40() {&lt;br /&gt;		assertEquals("0", new String(NumberUtils.toBase40(0)));&lt;br /&gt;		assertEquals("1", new String(NumberUtils.toBase40(1)));&lt;br /&gt;&lt;br /&gt;		assertEquals("10", new String(NumberUtils.toBase40(40)));&lt;br /&gt;		assertEquals("20", new String(NumberUtils.toBase40(80)));&lt;br /&gt;&lt;br /&gt;		assertEquals("11", new String(NumberUtils.toBase40(41)));&lt;br /&gt;		assertEquals("21", new String(NumberUtils.toBase40(81)));&lt;br /&gt;&lt;br /&gt;		assertEquals("ABCD", new String(NumberUtils.toBase40(1117580)));&lt;br /&gt;		assertEquals("WWWW", new String(NumberUtils.toBase40(2559999)));&lt;br /&gt;&lt;br /&gt;		assertEquals("MSTSD5", new String(NumberUtils.toBase40(3061560805L)));&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void testToBase90() throws Exception {&lt;br /&gt;		assertEquals("#Q&amp;Y.`QY#", new String(NumberUtils.toBase90(10908158098650842L)));&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void testFromBase90() throws Exception {&lt;br /&gt;		assertEquals(10908158098650842L, NumberUtils.fromBase90("#Q&amp;Y.`QY#".toCharArray()));&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Sun, 30 Sep 2007 23:44:48 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4594</guid>
      <author>devijvers (Steven Devijver)</author>
    </item>
    <item>
      <title>bindec.scm</title>
      <link>http://snippets.dzone.com/posts/show/3479</link>
      <description>// Convert list of 1s and 0s back to base ten number.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;; Andrew Pennebaker&lt;br /&gt;; 5 Feb 2007&lt;br /&gt;; License: GPL&lt;br /&gt;; URL: http://snippets.dzone.com/posts/show/3479&lt;br /&gt;&lt;br /&gt;(define bin-&gt;dec&lt;br /&gt;	(lambda (b)&lt;br /&gt;		(cond&lt;br /&gt;			((integer? b) b)&lt;br /&gt;			((= (length b) 0) 0)&lt;br /&gt;			(else&lt;br /&gt;				(+&lt;br /&gt;					(* (expt 2 (- (length b) 1)) (car b))&lt;br /&gt;					(bin-&gt;dec (cdr b)))))))&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 08 Feb 2007 03:21:50 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3479</guid>
      <author>mcandre (Andrew Pennebaker)</author>
    </item>
    <item>
      <title>decbin.scm</title>
      <link>http://snippets.dzone.com/posts/show/3478</link>
      <description>// Converts a base ten integer to a list of 1s and 0s&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;; Andrew Pennebaker&lt;br /&gt;; 3 Feb 2007&lt;br /&gt;; License: GPL&lt;br /&gt;; URL: http://snippets.dzone.com/posts/show/3478&lt;br /&gt;&lt;br /&gt;(define dec-&gt;bin&lt;br /&gt;	(lambda (d)&lt;br /&gt;		(cond&lt;br /&gt;			((&lt; d 1) (list 0))&lt;br /&gt;			((= d 1) (list 1))&lt;br /&gt;			((&gt; d 1) (append&lt;br /&gt;				(dec-&gt;bin (floor (/ d 2)))&lt;br /&gt;				(list (if (= (modulo d 2) 0) 0 1)))))))&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 08 Feb 2007 03:18:23 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3478</guid>
      <author>mcandre (Andrew Pennebaker)</author>
    </item>
    <item>
      <title>Generic base conversor //Javascript Object</title>
      <link>http://snippets.dzone.com/posts/show/523</link>
      <description>&lt;a href="http://jsfromhell.com/number/base-conversor"&gt;&lt;br /&gt;Minimum Common Multiple&lt;br /&gt;&lt;br /&gt;[UPDATED CODE AND HELP CAN BE FOUND HERE]&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//+ Jonas Raoni Soares Silva&lt;br /&gt;//@ http://jsfromhell.com/number/base-conversor [v1.0]&lt;br /&gt;&lt;br /&gt;Conversor = {&lt;br /&gt;	h: '0123456789abcdefghijklmnopqrstuvwxyz',&lt;br /&gt;&lt;br /&gt;	int2base: function( n, base ){&lt;br /&gt;		if( base &lt; 2 || base &gt; this.h.length )&lt;br /&gt;			throw new Error( "base inv&#225;lida" );&lt;br /&gt;		for( var n = parseInt( n ) || 0, result = ""; n; result = this.h.charAt( n % base ) + result, n = Math.floor( n / base ) );&lt;br /&gt;		return result;&lt;br /&gt;	},&lt;br /&gt;	base2int: function( s, base ){&lt;br /&gt;		for( var i = -1, l = s.length, result = 0; ++i &lt; l; result = result * base + this.h.indexOf( s.charAt( i ) ) );&lt;br /&gt;		return result;&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 29 Jul 2005 17:22:24 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/523</guid>
      <author>jonasraoni (Jonas Raoni Soares Silva)</author>
    </item>
    <item>
      <title>baseX converter</title>
      <link>http://snippets.dzone.com/posts/show/483</link>
      <description>you can use this function to convert an integer into any number system upto base36 (e.g. for TinyURL generation coupled with a global ID counter)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;function int2baseX($val,$base=16) {&lt;br /&gt;  if (0==$val) return 0;&lt;br /&gt;  $symbols='0123456789abcdefgihjklmnopqrstuvwxyz';&lt;br /&gt;  $result='';&lt;br /&gt;  $exp=$oldpow=1;&lt;br /&gt;  while($val&gt;0 &amp;&amp; $exp&lt;10) {&lt;br /&gt;    $pow=pow($base,$exp++);&lt;br /&gt;    $mod=($val % $pow);&lt;br /&gt;    $result=substr($symbols,$mod/$oldpow,1).$result;&lt;br /&gt;    $val-=$mod;&lt;br /&gt;    $oldpow=$pow;&lt;br /&gt;  }&lt;br /&gt;  return $result;&lt;br /&gt;}&lt;/code&gt;</description>
      <pubDate>Tue, 19 Jul 2005 19:55:29 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/483</guid>
      <author>toxi (karsten schmidt)</author>
    </item>
  </channel>
</rss>
