Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tạo byte thập lục phân ngẫu nhiên

Chúng ta sẽ thảo luận về một chương trình C ++ có thể tạo ra các số thập lục phân ngẫu nhiên. Ở đây chúng ta sẽ sử dụng các hàm rand () và itoa () để thực hiện giống nhau. Hãy để chúng tôi thảo luận về các chức năng này một cách riêng biệt và phân loại.

rand (): Hàm rand () là một phương thức được xác định trước của C ++. Nó được khai báo trong tệp tiêu đề . rand () được sử dụng để tạo số ngẫu nhiên trong một phạm vi. Ở đây min_n là phạm vi tối thiểu của các số ngẫu nhiên và max_n là phạm vi tối đa của các số. Vì vậy, hàm rand () sẽ trả về các số ngẫu nhiên trong khoảng từ min_n đến (max_n - 1) bao gồm các giá trị giới hạn. Ở đây nếu chúng ta đề cập đến giới hạn dưới và trên lần lượt là 1 và 100, thì hàm rand () sẽ trả về giá trị từ 1 đến (100 - 1). tức là từ 1 đến 99.

itoa (): Nó trả về giá trị đã chuyển đổi của một số thập phân hoặc số nguyên. Nó chuyển đổi giá trị thành một chuỗi được kết thúc bằng null với một cơ sở được chỉ định. Nó lưu trữ giá trị đã chuyển đổi vào một mảng do người dùng xác định.

Cú pháp

itoa(new_n, Hexadec_n, 16);

Ở đây new_n là bất kỳ số nguyên ngẫu nhiên nào và Hexadec_n là mảng do người dùng xác định và 16 là cơ sở của số thập lục phân. Điều đó có nghĩa là trong việc chuyển đổi một số thập phân hoặc số nguyên thành số thập lục phân.

Thuật toán

Begin
   Declare max_n to the integer datatype.
      Initialize max_n = 100.
   Declare min_n to the integer datatype.
      Initialize min_n = 1.
   Declare an array Hexadec_n to the character datatype.
   Declare new_n to the integer datatype.
   Declare i to the integer datatype.
   for (i = 0; i < 5; i++)
      new_n = ((rand() % (max_n + 1 - min_n)) + min_n)
      Print “The random number is:”.
      Print the value of new_n.
      Call itoa(new_n, Hexadec_n, 16) method to
      convert a random decimal number to hexadecimal number.
      Print “Equivalent Hex Byte:”
         Print the value of Hexadec_n.
End.

Ví dụ

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
int main(int argc, char **argv) {
   int max_n = 100;
   int min_n = 1;
   char Hexadec_n[100];
   int new_n;
   int i;
   for (i = 0; i < 5; i++) {
      new_n = ((rand() % (max_n + 1 - min_n)) + min_n);
      //rand() returns random decimal number.
      cout<<"The random number is: "<<new_n;
      itoa(new_n, Hexadec_n, 16); //converts decimal number to Hexadecimal number.
      cout << "\nEquivalent Hex Byte: "
      <<Hexadec_n<<endl<<"\n";
   }
   return 0;
}

Đầu ra

The random number is: 42
Equivalent Hex Byte: 2a
The random number is: 68
Equivalent Hex Byte: 44
The random number is: 35
Equivalent Hex Byte: 23
The random number is: 1
Equivalent Hex Byte: 1
The random number is: 70
Equivalent Hex Byte: 46