Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แปลงตัวเลขเป็นเลขฐานสิบหกใน C++


สมมติว่าเรามีจำนวนเต็ม เราต้องสร้างอัลกอริทึมเพื่อแปลงเป็นเลขฐานสิบหก สำหรับจำนวนลบ เราจะใช้วิธีการเสริมของทั้งสอง

ดังนั้น หากอินพุตเป็น 254 และ -12 เอาต์พุตจะเป็น fe และ fffffff4 ตามลำดับ

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้า num1 เท่ากับ 0 แล้ว −

    • ส่งคืน "0"

  • num :=num1

  • s :=สตริงว่าง

  • ในขณะที่ num ไม่ใช่ศูนย์ ให้ทำ -

    • temp :=num mod 16

    • ถ้าอุณหภูมิ <=9 แล้ว −

      • s :=s + temp เป็นอักขระตัวเลข

    • มิฉะนั้น

      • s :=s + temp เป็นตัวอักษร

    • นัม :=นัม / 16

  • กลับอาร์เรย์ s

  • ผลตอบแทน s

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   string toHex(int num1){
      if (num1 == 0)
         return "0";
      u_int num = num1;
      string s = "";
      while (num) {
         int temp = num % 16;
         if (temp <= 9)
            s += (48 + temp);
         else
            s += (87 + temp);
         num = num / 16;
      }
      reverse(s.begin(), s.end());
      return s;
   }
};
main(){
   Solution ob;
   cout << (ob.toHex(254)) << endl;
   cout << (ob.toHex(-12));
}

อินพุต

254
-12

ผลลัพธ์

fe
fffffff4