Làm cách nào để chuyển đổi hex sang ASCII trong PHP?

Xem Bút JavaScript Chuyển đổi định dạng thập lục phân sang ASCII - string-ex-28 của w3resource (@w3resource) trên CodePen


Cải thiện giải pháp mẫu này và đăng mã của bạn qua Disqus

Trước. Viết hàm JavaScript để chuyển đổi ASCII sang định dạng thập lục phân.
Tiếp theo. Viết một hàm JavaScript để tìm một từ trong một chuỗi.

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



JavaScript. Lời khuyên trong ngày

Viết các vòng lặp ngắn hơn với các phương thức mảng

const prices = ['1.0', 'negotiable', '2.15'];
 
const formattedPrices = [];
for (let i = 0; i < prices.length; i++) {
    const price = parseFloat(prices[i]);
    if (price) {
        formattedPrices.push(price);
    }
}
console.log(formattedPrices);

Thay vì đoạn mã trên, chúng ta có thể nhận được hiệu ứng tương tự từ ba dòng bên dưới bằng cách sử dụng phương thức bản đồ. Phương thức này tạo ra một mảng có kích thước tương đương chỉ với thuộc tính giá. Sau đó, chúng tôi nhận các giá trị thả nổi của giá đó bằng cách sử dụng parseFloat

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
1

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
2

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
3

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
4

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
5

Thuật toán này chuyển đổi số thập lục phân thành mã ASCII

									function HexadecimalToASCII($hex)
{
	$ascii = "";
	$hexLen = strlen($hex);

	for ($i = 0; $i < $hexLen; $i += 2)
	{
		$ascii .= chr(HexadecimalToDecimal(substr($hex, $i, 2)));
	}

	return $ascii;
}

function HexadecimalToDecimal($hex)
{
	$hex = strtoupper($hex);

	$hexLength = strlen($hex);
	$dec = 0;

	for ($i = 0; $i < $hexLength; $i++)
	{
		$b = ord($hex[$i]);

		if ($b >= 48 && $b <= 57)
			$b -= 48;
		else if ($b >= 65 && $b <= 70)
			$b -= 55;

		$dec += $b * pow(16, (($hexLength - $i) - 1));
	}

	return (int)$dec;
}
								

Ví dụ

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								

đầu ra

									Programming Algorithms
								

Với chuỗi giá trị thập lục phân làm đầu vào, nhiệm vụ là chuyển đổi chuỗi giá trị thập lục phân đã cho thành chuỗi định dạng ASCII tương ứng của chúng

ví dụ.  

Input: 6765656b73
Output: geeks

Input:  6176656e67657273
Output: avengers 

Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp

Hệ thống đánh số "Hexadecimal" hoặc đơn giản là "Hex" sử dụng hệ thống Base of 16. Là một hệ thống Base-16, có thể có 16 ký hiệu chữ số. Số thập lục phân sử dụng 16 ký hiệu {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} để biểu diễn tất cả các số. Ở đây, (A, B, C, D, E, F) đại diện cho (10, 11, 12, 13, 14, 15).  

ASCII là viết tắt của Mã tiêu chuẩn Mỹ để trao đổi thông tin. ASCII là một tiêu chuẩn gán các chữ cái, số và các ký tự khác trong 256 vị trí có sẵn trong mã 8 bit. e. g ký tự “h” viết thường (Char) có giá trị thập phân là 104, là “01101000” ở dạng nhị phân và “68” ở dạng thập lục phân.
Để biết thêm các giá trị ASCII, hãy tham khảo BẢNG ASCII.

thuật toán.   

  1. Khởi tạo chuỗi ascii cuối cùng là trống
  2. Trích xuất hai ký tự đầu tiên từ chuỗi thập lục phân được lấy làm đầu vào
  3. Chuyển đổi nó thành số nguyên cơ số 16
  4. Truyền số nguyên này thành ký tự ASCII tương đương với 2 ký tự hex
  5. Thêm ký tự này vào chuỗi cuối cùng
  6. Trích xuất hai ký tự tiếp theo từ chuỗi thập lục phân và chuyển sang bước 3
  7. Làm theo các bước sau để trích xuất tất cả các ký tự từ chuỗi thập lục phân

Làm cách nào để chuyển đổi hex sang ASCII trong PHP?

Thực hiện

C++




									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
6

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
7

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
8

									$data = "50726F6772616D6D696E6720416C676F726974686D73";
$value = HexadecimalToASCII($data);
								
9
									Programming Algorithms
								
0
									Programming Algorithms
								
1

 

									Programming Algorithms
								
2

									Programming Algorithms
								
3

geeks
0
geeks
1

geeks
0
geeks
3
geeks
4
geeks
5

geeks
0_______57
geeks
42
geeks
43
geeks
44____58
									Programming Algorithms
								
24____547
geeks
48
geeks
49
									Programming Algorithms
								
26
geeks
51

Làm cách nào để chuyển đổi ký tự thành giá trị ASCII trong PHP?

Hàm ord() trả về giá trị ASCII của ký tự đầu tiên của chuỗi.

Làm cách nào để sử dụng hex trong PHP?

Hàm hexdec() chuyển đổi số thập lục phân thành số thập phân . Mẹo. Để chuyển đổi thập phân thành thập lục phân, hãy xem hàm dechex().

Làm cách nào để sử dụng ASCII trong PHP?

Hàm PHP chr() . Giá trị ASCII có thể được chỉ định ở dạng giá trị thập phân, bát phân hoặc hex. Các giá trị bát phân được xác định bởi một số 0 đứng đầu, trong khi các giá trị hex được xác định bởi một 0x đứng đầu. The chr() function returns a character from the specified ASCII value. The ASCII value can be specified in decimal, octal, or hex values. Octal values are defined by a leading 0, while hex values are defined by a leading 0x.