进制不能直接转换借助中间量,二次转换
Java.long.Long.parseLong()
参考原文链接:https://blog.csdn.net/weixin_45683963/article/details/119300625
基本语法:parseLong(String s,int radix);
将 string 参数解析为有符号的 long,基数由第二个参数指定
字符串转数字
例:将十进制的输入st(字符串类型)转换为16进制输出
Long.parseLong(st, 16)
如果第一个字符为 ASCII 字符的减号 ‘-’ (’\u002D’),它表示一个负值。返回得到的 long 值。负值
例
示例:
parseLong(“0”, 10) returns 0L
parseLong(“473”, 10) returns 473L
parseLong("-0", 10) returns 0L
parseLong("-FF", 16) returns -255L
parseLong(“1100110”, 2) returns 102L
parseLong(“99”, 8) returns NumberFormatException
parseLong(“Hazelnut”, 10) returns NumberFormatException
parseLong(“Hazelnut”, 36) returns 1356099454469L
这个函数应该只能单向解析,
![](https://img-blog.csdnimg.cn/img_convert/071d8108fec91550b02396c7f83cd242.png)
![](https://img-blog.csdnimg.cn/img_convert/5ce211aa39c4c0085dd9401e3c6e5d19.png)
这是用同一个函数输出的 Long.parseLong(st, 16)
关于异常
如果出现以下情形之一,则抛出 NumberFormatException 类型的异常:
第一个参数是 null 或零长度的字符串。
radix 小于 Character.MIN_RADIX 或者大于 Character.MAX_RADIX。
任何字符串的字符都不是指定基数的数字,除非第一个字符是减号 ‘-’ (’\u002d’),假定字符串的长度大于 1。
字符串表示的值不是 long 类型的值。
String.format
参考原文链接:(7条消息) String.format()的详细用法_anita9999的博客-CSDN博客_string format
基本语法
形如
String.format("%X", num);
第一个参数可以替换为:
转换符 | 详细说明 | 示例 |
%s | 字符串类型 | “喜欢请收藏” |
%c | 字符类型 | ‘m’ |
%b | 布尔类型 | true |
%d | 整数类型(十进制) | 88 |
%x | 整数类型(十六进制) | FF |
%o | 整数类型(八进制) | 77 |
%f | 浮点类型 | 8.888 |
%a | 十六进制浮点类型 | FF.35AE |
%e | 指数类型 | 9.38e+5 |
%g | 通用浮点类型(f和e类型中较短的) | 不举例(基本用不到) |
%h | 散列码 | 不举例(基本用不到) |
%% | 百分比类型 | %(%特殊字符%%才能显示%) |
%n | 换行符 | 不举例(基本用不到) |
%tx | 日期与时间类型(x代表不同的日期与时间转换符) | 不举例(基本用不到) |
高级修改和日期修改参考原文链接
Integer (十转x)
参考原文链接:(7条消息) 第十四届蓝桥杯集训——JavaC组第八篇——进制转换_红目香薰的博客-CSDN博客
十进制转二进制:Integer.toBinaryString();
十进制转八进制:Integer.toOctalString();
十进制转十六进制:Integer.toHexString();
valueOf (x转10)
二进制转十进制·valueOf("二进制字符串",2);
八进制转十进制·valueOf("八进制字符串",8);
八进制转十进制·valueOf("八进制字符串",8);