Trong truyền thông liên lạc, một mã hiệu - hay còn gọi là mã số hoặc chỉ đơn thuần là mã - là một công thức để biến đổi một mẩu thông tin (chẳng hạn, một ký tự, một từ, hoặc một thành ngữ) sang một hình thức hoặc một tượng trưng khác, không nhất thiết đồng dạng với mẩu thông tin gốc. Trong truyền thông liên lạc và trong công nghệ xử lý thông tin ("information processing"), mã hóa ("encoding") là một quá trình một nguồn ("source") (đối tượng) biến đổi thông tin thành dữ liệu, sau đó truyền gửi dữ liệu tới một máy thu ("observer"), tương tự như một hệ thống xử lý dữ liệu. Giải mã ("decoding") là một quá trình biến đổi dữ liệu ngược lại. Nó biến đổi các dữ liệu được một nguồn gửi đến thành các thông tin mà máy thu (hoặc người nhận) có thể hiểu được. (Xin xem thêm Các phương pháp giải mã). "Codec" là một phần mềm thực hiện công thức (hoặc thuật toán) để giải quyết cả hai chức năng, mã hóa và giải mã, chẳng hạn MP3 là một "codec" mà người ta có thể thực hiện trong phần cứng hay trong phần mềm. Nó còn có thể bao gồm cả chức năng nén dữ liệu nữa. Một trong những nguyên nhân mã hóa được dùng là nó cho phép người ta giao thông liên lạc tại những nơi mà ngôn ngữ viết và nói thông thường trở nên khó khăn hoặc hoàn toàn không dùng được. Chẳng hạn, một mã điện tín thay thế các chữ (ví dụ: "tàu" hoặc "hóa đơn") thành những chữ ngắn hơn, cho phép nguyên văn bản thông tin được truyền gửi với số ký tự ít hơn, truyền được tin nhanh hơn, và quan trọng hơn cả, rẻ tiền hơn. Một ví dụ khác nữa là ví dụ dùng tín hiệu cờ. Sự bố trí của các lá cờ, do người đánh tín hiệu cầm, hoặc do các cánh tay của một đài tín hiệu cờ giữ, được dùng để mã hóa từng phần của thông điệp mà người ta muốn gửi. Mỗi cách bố trí là dấu hiệu của một chữ, hoặc của một con số. Một người khác, đứng ở một nơi xa, thông dịch các tín hiệu cờ và tái tạo lại các chữ đã gửi. Trong lịch sử mật mã học, một thời, cách dùng mã hiệu để đảm bảo tính tin cẩn ("confidentiality") trong truyền thông liên lạc đã trở thành thông dụng, song hiện nay, người ta dùng mật mã ("cipher") thay thế. (Xem thêm bài mã hiệu (mật mã học)). Hiện nay, ASCII có thể được coi là một loại mã dùng trong giao thông liên lạc dữ liệu (còn được gọi là "đại diện ký tự", hay chỉ đơn thuần "ký hiệu") phổ biến nhất. Hoặc trong phiên bản này hoặc trong phiên bản khác (phần nào tương thích), bảng mã ASCII hiện được dùng trong hầu hết các máy tính cá nhân (PC), các thiết bị đầu cuối, các máy in, và các thiết bị giao thông liên lạc khác. Phiên bản gốc của ASCII chỉ bao gồm 128 ký tự dùng 7 bit nhị phân—có nghĩa là dùng một chuỗi 7 ký tự bao gồm các số 1 và 0 mà thôi. Trong bảng mã ASCII, chữ "a" thường lúc nào cũng có giá trị là 1100001, và chữ "A" hoa luôn luôn có giá trị là 1000001, vân vân. Các bản kế thừa sau này của ASCII bao gồm bản dùng 8-bit để biểu đạt các ký tự (có cả các ký tự trong các ngôn ngữ của châu Âu, và những ký hiệu khác như các ký hiệu trong bài "tú lơ khơ" (♠,♣,♥,♦)), và sau này bản phát triển trọn vẹn nhất bao gồm tất cả các nét chữ trong các hệ thống chữ viết trên toàn thế giới (Xin xem bài Unicode và bài về Bob Bemer). Các mã số (hay mã hiệu) cũng còn được dùng để đại diện cho dữ liệu, dưới một hình thức tốt hơn để giúp vào việc chống các lỗi lầm xảy ra trong khi truyền thông hay trong việc lưu trữ dữ liệu. Loại "mã" này được gọi là mã sửa lỗi ("error-correcting code"), và nó làm việc bằng cách cho thêm những giá trị thừa đã được tính toán một cách khôn khéo vào trong dữ liệu lưu trữ (hay dữ liệu được truyền thông). Ví dụ như: Các mã dùng để sửa lỗi đều được tối ưu hóa để phát hiện chùm lỗi đột phát ("burst errors") và các lỗi ngẫu nhiên. Các từ bằng chữ đầu ("Acronyms") và các từ viết tắt cũng có thể được coi là các mã hiệu, hay nói cách khác, tất cả các ngôn ngữ và hệ thống chữ viết là các mã hiệu của tư duy nhân loại. Thỉnh thoảng người ta thấy một từ mã chiếm lĩnh được quyền tồn tại độc lập (cả về tổ chức của nhóm từ và về ý nghĩa) trong khi câu thành ngữ gốc của nó dần dần bị lãng quên đi, hoặc ở mức độ tối thiểu, câu thành ngữ không còn ý nghĩa chính xác mà mã hiệu tượng trưng nữa. Chẳng hạn con số "86" đã từng một thời là mã hiệu trong các hiệu ăn với nghĩa là "We're out of the requested item" (Món ăn yêu cầu đã hết). Hiện nay, mã hiệu "86" này lại thường được dùng với cái nghĩa là sự tẩy trừ ("removal") hoặc sự hủy bỏ ("destruction") của cái gì đó. Số 30 từng được dùng phổ biến trong giới báo chí với cái nghĩa là "end of story" (hết truyện), và đôi khi được dùng trong các ngữ cảnh khác để biểu thị chữ "the end" (Hết). Trong toán học, mã Gödel là nền tảng cho chứng minh Định lý bất toàn của nhà toán học Kurt Gödel. Mục đích của định lý này là liên kết ký hiệu toán học với một số tự nhiên (số Gödel).