Hola:
A tu pregunta hay muchas respuesta, claro que no soy un genio en la materia pero la respuesta es la siguiente, (y si me equivoco que me quemen con leña verde, pero antes espero tener derecho a replica… jejejeje )un archivo dat, dice implícitamente que es un archivo de datos (dat-a) ahora bien como se generan, pues exciten varias formas y es según el algoritmo que se este utilizando para ello, por ejemplo, si conoces los archivos de video en un VDC veras que es un archivo dat el cual puede ser ejecutado por el Windows Media Playe (mplayer2.exe) y el algoritmo que se utilizo fue para dar salida en forma de audio y video, existen algoritmos para “encapsular” datos de formato de texto o de algún programa, en resumidas cuentas es un archivo binario el cual contiene el código necesario para ser leído por un programa determinado. // Archivos de Texto (txt) estos archivos utilizan la tabla de asignación de caracteres la para el teclado ASCII, es decir que estos caracteres son el resultado de una traducción del código binario a decimal y finalmente a los caracteres que tu computadora representa en la pantalla ejemplo:
Código binario correspondiente a la letra A del Alfabeto: 1000001
Código decimal correspondiente a la letra A del Alfabeto: 65
En otras palabras:
1000001 = A
65 = A
Y estos códigos ASCII es un estándar para los sistemas operativos, Microsoft, Mac, Linux, Unix etc.
Nota del Código Binario a decimal:
Lectura y valor por posición de Izquierda a derecha:
1,2,4,8,16,32,64
1 0 0 0 0 0 1
Solo se suman los valores que contienen el numero uno (