IUT Dijon - IQ
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Réassort du coffret Pokémon 151 Électhor-ex : où l’acheter ?
Voir le deal

La programmation JAVA - par Ned

3 participants

Aller en bas

La programmation JAVA - par Ned Empty La programmation JAVA - par Ned

Message  Ned Mar 1 Nov - 2:29

La programmation JAVA - par Ned


Bonjour à tous.
J'ai commencé à réaliser moi même quelques cours pour le JAVA. Je les mettrai en ligne ici dès que j'aurai avancé. Le premier post me servira pour les mises à jour des cours.
Si vous avez des questions sur le JAVA ou sur un TD/TP/Algo à réaliser, n'hésitez pas à me la poser ici, je surveillerai le sujet.

Cours : Les Opérateurs en JAVA
Ned
Ned
Membre du Bureau

Messages : 56
Date d'inscription : 31/10/2011
Localisation : Dijon

Informations
Nom: Nedved
Groupe: Ex-IQ

https://sites.google.com/site/oklaantexte/

Revenir en haut Aller en bas

La programmation JAVA - par Ned Empty Re: La programmation JAVA - par Ned

Message  Spownik Ven 4 Nov - 15:41

Merci Beaucoup pour ce petit tour d'horizon des opérateurs ! C'est assez intéressant !

Juste une question suite à la lecture du cours.
Comment se passe le complément à 1 ( ~ ) si on lui donne un double ou un int.Si à la base la variable est déjà non signée, elle devient signée sur le même nombre de bits j'imagine ?
Genre si je donne un entier, non signé sur 4bits, qui vaut 15 (1111) et que je fais ~15 (normalement 0000), que va-t-il se passer ? Me donner -1, 0, 1 ? autre chose ?

Merci d'avance pour la réponse :p
Spownik
Spownik

Messages : 4
Date d'inscription : 02/11/2011
Age : 31

Informations
Nom: Anthony Q.
Groupe: IQ1-C

Revenir en haut Aller en bas

La programmation JAVA - par Ned Empty Re: La programmation JAVA - par Ned

Message  Ahura Mazda Ven 4 Nov - 16:18

Spownik a écrit:Merci Beaucoup pour ce petit tour d'horizon des opérateurs ! C'est assez intéressant !

Juste une question suite à la lecture du cours.
Comment se passe le complément à 1 ( ~ ) si on lui donne un double ou un int.Si à la base la variable est déjà non signée, elle devient signée sur le même nombre de bits j'imagine ?
Genre si je donne un entier, non signé sur 4bits, qui vaut 15 (1111) et que je fais ~15 (normalement 0000), que va-t-il se passer ? Me donner -1, 0, 1 ? autre chose ?

Merci d'avance pour la réponse :p

Je vais faire une réponse bizarre mais je pense pertinente

JAVA est un langage haut niveau presque totalement orienté objet, pas du tout fait pour se prendre la tête avec ce genre de notions. Je code principalement en JAVA depuis 10 ans et je n'ai jamais eu besoin de cet opérateur (JAVA est plutôt adapté a de la création d'interfaces pour des systèmes d'informations). Par contre j'ai fait pas mal de C/C++ en parallèle il y a quelques années (plutôt pour des programmes bas niveaux liés au réseau ou au système d'exploitation) et là on utilisait couramment les manipulations bit à bit des entiers (systèmes de drapeaux).

Je ne dis pas que l'on ne peut pas faire des opérations bas niveau avec JAVA, je dis juste que ce n'est pas du tout adapté alors que C/C++ l'est tout à fait.
Ahura Mazda
Ahura Mazda

Messages : 24
Date d'inscription : 03/11/2011
Age : 42
Localisation : DIJON

Informations
Nom: François Tavin
Groupe: Prof

Revenir en haut Aller en bas

La programmation JAVA - par Ned Empty Re: La programmation JAVA - par Ned

Message  Spownik Ven 4 Nov - 16:42

Merci, bah toute réponse est bonne à prendre, merci beaucoup !

En fait c'était juste de la curiosité. Pour avoir taté un peu de C et C++ (bon ok jsuis pas allé plus loin qu'avec std::cout et std::cin parce que à mon niveau je n'avais pas besoin de plus) et qu'en fait je n'avais jamais vu cet opérateur pour faire un complément à 1, sur le papier jvois comment ça se passe, je voulais savoir si ça se passe à l'identique sur une machine, ou alors si ça varie, sur les opérations sur mots binaires j'ai juste appris à faire les décalage de bits pour multiplier par 2, 4, 8.... Alors voilà bah merci quand même, au moins ça m'indique que l'on peut très bien programmer 10 ans sans l'utiliser en JAVA x)

Au passage, juste une toute petite critique sur le cours déjà très sympathique, je trouve personnellement qu'il manque d'exemples sur la partie "Autres opérateurs" car ce sont peut-être les opérateurs avec lesquels les débutants vont vraiment avoir du mal, genre le décalage de bits, ainsi que les affectations élargies, c'est peut-être pas évident pour tout le monde

Ne serait-ce qu'un petit exemple en fait du genre , 3 << 1 ça donne 6 car on décale le mot binaire 0011 une fois vers la gauche, ce qui double le nombre : 0110 etc...
Spownik
Spownik

Messages : 4
Date d'inscription : 02/11/2011
Age : 31

Informations
Nom: Anthony Q.
Groupe: IQ1-C

Revenir en haut Aller en bas

La programmation JAVA - par Ned Empty Re: La programmation JAVA - par Ned

Message  Ahura Mazda Ven 4 Nov - 18:11

Ces opérateurs sont aussi anecdotiques en JAVA et même en algorithmique en général

En fait vous les étudierez plutôt en Architecture des Systèmes
Ahura Mazda
Ahura Mazda

Messages : 24
Date d'inscription : 03/11/2011
Age : 42
Localisation : DIJON

Informations
Nom: François Tavin
Groupe: Prof

Revenir en haut Aller en bas

La programmation JAVA - par Ned Empty Re: La programmation JAVA - par Ned

Message  Ned Ven 4 Nov - 19:17

D'ou le fait que j'en ai peu parlé dans le cours : ils ont été intégrés à JAVA mais ne servent pas où très peu. Pour ta première question je regarderai ce soir ou demain ! :-)
Ned
Ned
Membre du Bureau

Messages : 56
Date d'inscription : 31/10/2011
Localisation : Dijon

Informations
Nom: Nedved
Groupe: Ex-IQ

https://sites.google.com/site/oklaantexte/

Revenir en haut Aller en bas

La programmation JAVA - par Ned Empty Re: La programmation JAVA - par Ned

Message  Ned Sam 5 Nov - 21:17

Bon je me suis penché sur la question via Netbeans (je ne pense pas que ça change grand chose dans ce cas, mais bon).

D'abord, l'opérateur ~ ne s'applique pas au double, ce qui résout ton problème. En effet, un nombre décimal poserai des problèmes dans ce cas.

Ensuite...

int test = 15;
test = ~test;
System.out.println(test);
ressortira comme valeur -16

(On obtient -2 pour la valeur 1 ; 0 pour la valeur -1 ; -1 pour la valeur 0)

Ayant eu la flemme de faire une recherche plus poussée sur Google, on en déduit tout de même :
Tu obtiens une valeur de signe opposée (ce qui est normal car le nombre devient signé) et tu as un décalage d'un bit.
Je te laisse tester par toi même si tu veux voir le fonctionnement plus en avant. Mais comme cela a été souligné, cet opérateur ne sers pas. (Je m'en suis servi pour la première fois en JAVA à l'instant pour pouvoir tester). Il servira plus en AS où vous ferez du C et des opérations sur les bits. =)
Pour des informations plus poussée... Je t'invite à essayer ceci.
Ned
Ned
Membre du Bureau

Messages : 56
Date d'inscription : 31/10/2011
Localisation : Dijon

Informations
Nom: Nedved
Groupe: Ex-IQ

https://sites.google.com/site/oklaantexte/

Revenir en haut Aller en bas

La programmation JAVA - par Ned Empty Re: La programmation JAVA - par Ned

Message  Spownik Lun 7 Nov - 18:15

Ah ouais c'est niquel ! Merci beaucoup :p Ouais finalement c'est logique, x) Sympathique tout ça, encore merci ça réponds à mes questions

Curieux de voir la suite du cours j'aime, merci à vous
Spownik
Spownik

Messages : 4
Date d'inscription : 02/11/2011
Age : 31

Informations
Nom: Anthony Q.
Groupe: IQ1-C

Revenir en haut Aller en bas

La programmation JAVA - par Ned Empty Re: La programmation JAVA - par Ned

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum