The result of 512*1024 becomes 0

Thank you for your response.
I tried that, but the result was the same.

#include <SoftwareSerial.h>

//SoftwareSerial USB_HOST_SERIAL = SoftwareSerial(2, 3); // RX, TX

void setup() {
  Serial.begin(115200);

  delay(100);
}


void loop() {// put your main code here, to run repeatedly:
  unsigned long k = 512 * 1024;
  //unsigned long int k = 524288;
  Serial.println(k);
  delay(100);

}

512_1024_result2