🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #2022

Re: Cuando usar char, byte o u8 ?

#2022
From: David Lago
Date: Tue, 07 Jun 2005 23:38
48 lines
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-mail
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>

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