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

การแปลงทศนิยม 32 บิตที่ไม่ได้ลงนามเป็นที่อยู่ ipv4 ที่สอดคล้องกันใน JavaScript


ปัญหา

พิจารณาที่อยู่ ipv4 ต่อไปนี้ -

128.32.10.1

หากเราแปลงเป็นเลขฐานสอง ค่าที่เท่ากันจะเป็น −

10000000.00100000.00001010.00000001

และถ้าเราแปลงเลขฐานสองนี้เป็นทศนิยม 32 บิตที่ไม่ได้ลงนาม ทศนิยมจะเป็น -

2149583361

ดังนั้น เราสามารถพูดได้ว่า ipv4 ที่เทียบเท่ากับ 2149583361 คือ 128.32.10.1

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้จำนวนเต็ม 32 บิตที่ไม่ได้ลงนามและส่งคืนที่อยู่ ipv4 ที่เทียบเท่ากัน

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const num = 2149583361;
const int32ToIp = (num) => {
   return (num >>> 24 & 0xFF) + '.' +
   (num >>> 16 & 0xFF) + '.' +
   (num >>> 8 & 0xFF) + '.' +
   (num & 0xFF);
};
console.log(int32ToIp(num));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

128.32.10.1