将十六进制数(任意大小)转换为二进制数。
输入
一个正的十六进制数字,以a 0x
开头。有效输入将始终与以下正则表达式匹配:0x[0-9a-fA-F]+
。如果输入的不是有效的十六进制数字,即与该正则表达式不匹配的任何数字,则输出应为0
。
输出
将十六进制转换为二进制。
赢得
原始代码高尔夫球规则,咬伤次数最少(bytes)
。
例子
IN: 0x12
OUT: 10010
IN: 0xFF
OUT: 11111111
IN: 0XFF
OUT: 0
IN: #0ac4
OUT: 0
IN: 0x00101011
OUT: 100000001000000010001
IN: 0x525600
OUT: 10100100101011000000000
IN: 0x58f70555118ec400
OUT: 101100011110111000001010101010100010001100011101100010000000000
IN: 0x6669795966AF3000
OUT: 110011001101001011110010101100101100110101011110011000000000000
IN: 0b018474
OUT: 0
IN: 9577383
OUT: 0
IN: -483355
OUT: 0
IN: -0xf9ad92
OUT: 0
7
当您说“如果输入的不是有效的十六进制数字”时,它可以是什么类型的东西?不同基数的数字?非数字对象?某些使程序崩溃的对象可能会以无法捕获的方式进行评估?确实,我会建议完全避免输入验证。感觉就像是变色龙的挑战。
—
xnor
从测试用例中推断规则是不可行的,因为不清楚,很可能会解决挑战。除此之外,这些例子对我来说还不清楚。“#0ac4”使得似乎可以包含任何额外的字符。
—
xnor
编辑后我仍然不清楚哪些输入是可能的。是否
—
xnor
#0ac4
仍然有效的测试用例?
您的第二个测试用例与您的正则表达式不匹配(
—
Dada
X
为大写)。
我们需要注意前导零吗?我们可以输出类似吗
—
user41805 '17
00011010