Fix Long.toBinaryString, Long.toHexString, and Long.toOctalString for negative values.

Although (int) -1 == (long) -1, Integer.toXString produces a shorter result than
Long.toXString should.
diff --git a/libcore/luni/src/main/java/java/lang/Long.java b/libcore/luni/src/main/java/java/lang/Long.java
index 1b28a5a..1c52896 100644
--- a/libcore/luni/src/main/java/java/lang/Long.java
+++ b/libcore/luni/src/main/java/java/lang/Long.java
@@ -396,7 +396,7 @@
      */
     public static String toBinaryString(long v) {
         int i = (int) v;
-        if (i == v) {
+        if (v >= 0 && i == v) {
             return Integer.toBinaryString(i);
         }
 
@@ -422,7 +422,7 @@
      */
     public static String toHexString(long v) {
         int i = (int) v;
-        if (i == v) {
+        if (v >= 0 && i == v) {
             return Integer.toHexString(i);
         }
 
@@ -447,7 +447,7 @@
      */
     public static String toOctalString(long v) {
         int i = (int) v;
-        if (i == v) {
+        if (v >= 0 && i == v) {
             return Integer.toOctalString(i);
         }
         int bufLen = 22;  // Max number of octal digits in a long