首页 > 其他 > 详细

405.十进制转换成十六进制 Convert a Number to Hexadecimal

时间:2017-01-11 07:42:10      阅读:217      评论:0      收藏:0      [点我收藏+]
十进制转二进制
  1. static void Main(string[] args) {
  2. int i = 60;
  3. string s = "";
  4. while (i>0) {
  5. s = (i % 2).ToString() + s;
  6. i /= 2;
  7. }
  8. Console.WriteLine(Convert.ToString(60, 2));//c#转换方法
  9. Console.WriteLine(s);
  10. }


Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used.

Note:

  1. All letters in hexadecimal (a-f) must be in lowercase.
  2. 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.
  3. The given number is guaranteed to fit within the range of a 32-bit signed integer.
  4. 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 

  1. public class Solution {
  2. public string ToHex(int num) {
  3. if (num == 0)
  4. {
  5. return "0";
  6. }
  7. long number = Convert.ToInt64(num);
  8. if (number < 0)
  9. {
  10. number = UInt32.MaxValue + number + 1;//取反+1
  11. }
  12. char[] hex = { ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘ };
  13. string hexString = "";
  14. long n = 0;
  15. char c = ‘ ‘;
  16. while (number > 0)
  17. {
  18. n = number % 16;
  19. c = hex[n];
  20. hexString = c + hexString;
  21. number /= 16;
  22. }
  23. return hexString;
  24. }
  25. }





405.十进制转换成十六进制 Convert a Number to Hexadecimal

原文:http://www.cnblogs.com/xiejunzhao/p/4ed044d7622df0ceeddb2a291ca8d073.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!