如何判断一段字符串是二进制?十进制?十六进制?
这可就不好判断了,不知道如此需求是有何用处?
例如字符串110
,你可以说它是十进制
,也可以说是二进制
,除非字符串中带有特殊表示,例如十六进制后面跟一个H
,十进制跟一个D
,八进制跟一个O
,二进制跟一个B
。 如果字符串中有这些字符串来表示的话,到时可以使用正则之类的进行判断
js里主要看前缀,比如0o
或者0O
就是八进制的,0x
或者0X
是十六进制的,而0b
和0B
就是二进制的。如果不给前缀,那就有点耍流氓了……
看标签里还有c和oc,这两门不太清楚~
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
一个简单粗暴的解决方案: 因为二进制、十进制、十六进制可用字符数依次增多,所以依次按照二进制、十进制、十六进制解析字符串即可,哪个先成功了就认为是哪一种。
比如
大致这么个算法意思