Article View: es.comp.os.linux.programacion
Article #2022Re: Cuando usar char, byte o u8 ?
From: David Lago
Date: Tue, 07 Jun 2005 23:38
Date: Tue, 07 Jun 2005 23:38
48 lines
3242 bytes
3242 bytes
Manuel wrote: > Una pregunta cuando el compilador genera el codigo binario (objeto), a los > datos que representan enteros como los codifica, en binario puro, > complemento a uno, complemento a 2...Lo pregunto porque cuando estamos > realizando operacion de desplazamiento en C (<< o >>) sobre un dato entero, > nosotros suponemos que el numero est� codificado en binario puro, y asi > deplazamos los bits la posicion que queramos, o tambien cuando estamos > haciendo operaciones con mascaras, filtramos los bits que queremos... pero > ahora yo tengo la duda, es posible que esto sea una abstracci�n m�s y luego > el compilador genere el codigo segun la arquitectura? > > Es decir yo muevo los bits segun esta abstraccion, pero luego el compilador > se encarga de pasar el dato desplazado x bits a su representacion para esa > maquina.. > > Algo parecido sucede cuanto hacemos divisiones por 2, el compilador no usa > la instruccion de division correspondiente sino que usa una operacion de > desplazamiento..... > > �Alguien me aclara todo esto? > > Un saludo y gracias. Hola Manuel, Cuando manipulas el contenido bit-a-bit (bien sea con m�scaras o con desplazamientos binarios), no se tiene en cuenta ninguna representaci�n especial para n�meros positivos o negativos, ni para ning�n otro tipo... para el sistema esa variable tuya es un conjunto de bits (en esas operaciones en concreto, ojo). S�lo tienes que tener en cuenta dos cosas que s� que son dependientes de la arquitectura en la que trabajas: 1) �Qu� tama�o se le asigna a ese tipo de variable? 2) Si �ste es mayor de un byte �C�mo coloca diferentes bytes (big-endian, little-endian? A�n as�, si no tienes pensado enviar el dato a otro ordenador que potencialmente puede tener otra arquitectura, y s�lo lo vas a leer desde el mismo programa en el que lo generas, no deber�a importarte el punto 2. Saludos, David. -- David Lago <dlago@mundo-r.com> PGP key available at: http://pgp.mit.edu Personal Blizog: http://arcanelinux.org/blog/dlworld The Enflame Project: http://enflame.org
Technical Details
Message-ID:
<d85b6c$oqv20@cesio.mundo-r.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!newsfeed00.sul.t-online.de!t-online.de!news1.dtag.de!cesio.mundo-r.com!not-for-mailReferences:
<d7pntb$f91$1@hefestos.uned.es> <ngr0a198vflk95ulsllvfaiddevb0hh99v@4ax.com> <VA.000009bb.00694aee@agujero-negro.escomposlinux.org> <87hdgbb0n8.fsf@barad-dur.escomposlinux.org> <d851e2$ap7$1@hefestos.uned.es>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,90041739000d1b44 X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!newsfeed00.sul.t-online.de!t-online.de!news1.dtag.de!cesio.mundo-r.com!not-for-mail From: David Lago <dlago@mundo-r.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: Cuando usar char, byte o u8 ? Date: Wed, 08 Jun 2005 01:38:52 +0200 Organization: R Cable y Telecomunicaciones Lines: 48 Message-ID: <d85b6c$oqv20@cesio.mundo-r.com> References: <d7pntb$f91$1@hefestos.uned.es> <ngr0a198vflk95ulsllvfaiddevb0hh99v@4ax.com> <VA.000009bb.00694aee@agujero-negro.escomposlinux.org> <87hdgbb0n8.fsf@barad-dur.escomposlinux.org> <d851e2$ap7$1@hefestos.uned.es> NNTP-Posting-Host: cm188095.red.mundo-r.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050515) X-Accept-Language: en-us, en In-Reply-To: <d851e2$ap7$1@hefestos.uned.es> X-Enigmail-Version: 0.90.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime