十进制转二进制
static void Main(string[] args) {int i = 60;string s = "";while (i>0) {s = (i % 2).ToString() + s;i /= 2;}Console.WriteLine(Convert.ToString(60, 2));//c#转换方法Console.WriteLine(s);}
Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used.
Note:
- All letters in hexadecimal (
a-f) must be in lowercase. - The hexadecimal string must not contain extra leading
0s. If the number is zero, it is represented by a single zero character\'0\'; otherwise, the first character in the hexadecimal string will not be the zero character. - The given number is guaranteed to fit within the range of a 32-bit signed integer.
- You must not use any method provided by the library which converts/formats the number to hex directly.
Example 1:
Input: 26 Output: "1a"
Example 2:
Input: -1 Output: "ffffffff"
Subscribe to see which companies asked this question
对于负数,先进行预处理,位取反后加1
public class Solution {public string ToHex(int num) {if (num == 0){return "0";}long number = Convert.ToInt64(num);if (number < 0){number = UInt32.MaxValue + number + 1;//取反+1}char[] hex = { \'0\', \'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'a\', \'b\', \'c\', \'d\', \'e\', \'f\' };string hexString = "";long n = 0;char c = \' \';while (number > 0){n = number % 16;c = hex[n];hexString = c + hexString;number /= 16;}return hexString;}}