Autor Tema: sign  (Leído 2854 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado safiro_pic

  • PIC10
  • *
  • Mensajes: 16
sign
« en: 26 de Abril de 2006, 22:30:33 »
hola, la verdad no entiendo que es lo que significa cuando se coloca char i coloque int i pero igual me funciono
yo creo que tendria que ser int entero no es cierto porque char es caracter no????
o es que no hay diferencia
esta parte es de los display de los 7 segmentos
*****
void main(void)
{
CHAR i=0;                         
int tab7seg[10]={0x3F......

*****
que represent colocar "signed unsigned"


signed char i   y el otro caso 

unsigned



Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: sign
« Respuesta #1 en: 26 de Abril de 2006, 23:14:34 »
Estas cuestiones dependen del compilador,  del sistema operativo y se suelen aclaran en el help.

char es siempre una variable de 1 byte,  en eso no hay duda y lo he visto así en todos los compiladores en C que he usado tanto para PC como para microcontroladores, también en windows o linux.

En las variables int, son enteras.  Pero aquí si depende mucho del compilador y hay diversos criterios.

En "general" una int será una variable de 16 bits.

Lo de signed o unsigned es si la variable tendrá o no signo.

Si tiene signo tomará un valor de -32767 a +32768.
Si es unsigned tomará un valor de 0 a 65535


Espero haberte aclarado el tema.

Saludos




- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
Re: sign
« Respuesta #2 en: 27 de Abril de 2006, 01:55:09 »
Añadir que en el caso de CCS int es lo mismo que int8, es decir 8 bits.

Un saludo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: sign
« Respuesta #3 en: 27 de Abril de 2006, 08:22:01 »
Añadir que en el caso de CCS int es lo mismo que int8, es decir 8 bits.

Un saludo

Muy buena aclaración pocher, de hecho en el C18 una int es de 16 bits.  Esto constituye una diferencia que me parece muy importante si se quisiera migrar código de uno a otro software no?

Imaginan el lío que sería si uno no tiene en cuenta esta sutileza?

saludos


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado safiro_pic

  • PIC10
  • *
  • Mensajes: 16
Re: sign
« Respuesta #4 en: 27 de Abril de 2006, 19:02:25 »

compañeros gracias nuevamente ahi vamos aprendiendo el ccs pero con muchas
dificultades la verdad me fueron aclaradas de sidn y unsigned lo que comentan
ustedes para mi es aun desconocido de 16bits que relacion eso con el compilador del c
, para mi el compilador c lo unico que me hace es sacarme un archivo .hex que utilizare
para grabarle al pic, no me meto nada de idea de los 8bits 16bits estoy cero
, me falta mucho no amigos:(
bueno pero le sigo dandole poco a poco.(USO EL PIC16F84A)
  que es lo que le estoy diciendo en este caso


   signed  char i=0

mi forma de pensar seria el sgte.
 
 tu vas ser la variable i variaras de -32767 a +32768. no deberas pasarte de ese rango
 pero ahora i vales cero y tendras un tamaño de 1byte=8bits. representa eso??? 
 
 si es asi "char" entonces no significa caracter o sea letras A,B,C,D,E,F...Z
porque ese nombre???
 :?

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: sign
« Respuesta #5 en: 27 de Abril de 2006, 22:32:35 »

compañeros gracias nuevamente ahi vamos aprendiendo el ccs pero con muchas
dificultades la verdad me fueron aclaradas de sidn y unsigned lo que comentan
ustedes para mi es aun desconocido de 16bits que relacion eso con el compilador del c
, para mi el compilador c lo unico que me hace es sacarme un archivo .hex que utilizare
para grabarle al pic, no me meto nada de idea de los 8bits 16bits estoy cero
, me falta mucho no amigos:(
bueno pero le sigo dandole poco a poco.(USO EL PIC16F84A)
  que es lo que le estoy diciendo en este caso


   signed  char i=0

mi forma de pensar seria el sgte.
 
 tu vas ser la variable i variaras de -32767 a +32768. no deberas pasarte de ese rango
 pero ahora i vales cero y tendras un tamaño de 1byte=8bits. representa eso??? 
 
 si es asi "char" entonces no significa caracter o sea letras A,B,C,D,E,F...Z
porque ese nombre???
 :?


Mmmm, me cuesta explicar esto pero veré que puedo hacer.

El compilador en C hace que tu código en C se convierta en en código máquina el cual se representa en el caso de los programadores como un archivo .HEX

Tu programa hará ciertas cosas , tendrá variables que podran tener un "rango" es decir un valor minimo y máximo que puedan tomar.  Por ejemplo si tienes una variable "edadpersona" no tiene sentido que la declares int16 porque una persona nunca tendrá 65535 años. 

Si tu sabes que tu variable será de 0 a 65535 entonces la declaras como unsigned int16 (de 16 bits).  Un numero de 16 bits en binario puede tomar valores de 0 a 65535.  La contra es que ocupa 2 bytes en la memoria.

La variable ocupara 2 bytes SIEMPRE no importa si vale 0 o si vale 65535.  No la puedes redeclarar.  Si es char irá de 0 a 255, no de -32768 a 32767.

La char, es una vieja costumbre que no se de donde viene pero si bien tiene relación con que un caracter ascii puede valer de 0 a 255, justamente lo que entra en un byte o en una variable del tipo 'char'.

En algunos compiladores poner 'char' es lo mismo qeu poner 'unsigned char' ya que por defecto la char es una variable de 0 a 255.

Espero te haya sido util para comprender el tema.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado safiro_pic

  • PIC10
  • *
  • Mensajes: 16
Re: sign
« Respuesta #6 en: 28 de Abril de 2006, 21:02:08 »
gracias por la respuesta maunix, si hay cosas que la verdad no entiendo aunque son basicas  pero sigo aprendiendo mas de ustedes gracias nuevamente .. :P

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: sign
« Respuesta #7 en: 29 de Abril de 2006, 00:51:41 »
gracias por la respuesta maunix, si hay cosas que la verdad no entiendo aunque son basicas  pero sigo aprendiendo mas de ustedes gracias nuevamente .. :P

Aca no nos molesta contestar :)

Pero si quieres aprender rápido y por gente que se dedica a explicar por ahi es más práctico comprar un libro y venir acá a resolver dudas puntuales.  Creo que de esa forma aprenderás más rápido  :)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: sign
« Respuesta #8 en: 30 de Abril de 2006, 00:10:22 »
Me parece en todo caso que si te vas a dedicar al cacharreo de los pics que te mires algo de teoria sobre sistemas de numeración para comprender un poco mejor de que estamos hablando.

como ejemplo te dejo http://www.monografias.com/trabajos14/sistemanumeracion/sistemanumeracion.shtml


1 saludo

Desconectado safiro_pic

  • PIC10
  • *
  • Mensajes: 16
Re: sign
« Respuesta #9 en: 30 de Abril de 2006, 20:16:52 »
he gracias amigos por todos los aportes, si en eso estoy de a poco, maunix me podes enviar un mail please de cuales son los puntos claves que tengo que abordar y no ir por tantos rodeos me comentabas de libros si fuera posible please.
saludos

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: sign
« Respuesta #10 en: 01 de Mayo de 2006, 10:37:39 »
he gracias amigos por todos los aportes, si en eso estoy de a poco, maunix me podes enviar un mail please de cuales son los puntos claves que tengo que abordar y no ir por tantos rodeos me comentabas de libros si fuera posible please.
saludos

Safiro_pic en realidad en el tema de los pics soy autodidacta pero comencé hace años leyendo un libro de Pascal que creo era de Tanenbaum o alguno de esos 'gurus' del software.  Estaba realmente muy bien explicado y de ahí obtuve mis primeros pasitos en tema de variables , etc.

Me da pena no poderte ayudar con el tema del libro pero sí se que aquí te pueden recomendar y de hecho hay varios posts pidiendo ayuda al respecto.

No hace falta contactarnos en privado para ello, no tengo inconvenientes en ayudarte públicamente.  Todos hemos empezado alguna vez y no por ser novato en temas de variables debes preguntar en privado y por lo bajo  :) :)

Puedes preguntar lo que desees, solo que al ser tus dudas algo básicas me parece que lo mejor es leer un buen libro el cual puedes leer una y otra y otra vez hasta comprenderlo sin tener que preguntar tantas veces lo mismo :)  Era ese el consejo, nada mas.

Saludos
 
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)