sábado, 12 de julio de 2014

De sistema decimal a sistema binario en c++ y Java – Abogado – Dominios – Auto


Para convertir un número de sistema decimal a binario debemosdividir este número entre 2, hasta que el dividendo seamenor a 2, es decir 1.
Luego, se tomarán los restos de la división desde el último hasta el primero.

Ejemplo:

71 dividido entre 2 es igual a35 y el residuo igual a1.
35 dividido entre 2 es igual a17 y el residuo igual a1.
17 dividido entre 2 es igual a8 y el residuo igual a1.
8 dividido entre 2 es igual a4 y el residuo igual a0.
4 dividido entre 2 es igual a2 y el residuo igual a0.
2 dividido entre 2 es igual a1 y el residuo igual a0.
1 dividido entre 2 es igual a 0 y el residuo igual a1.

Entonces, en sistema binario71 se escribe 1000111.

Un ejemplo más gráfico


¿Como hacer esta operación en c++?

#include iostream

using namespace std;

int main(){
int numero, dividendo, resto, divisor = 2;
string binario = "";
cout "Ingrese el numero decimal a convertir a sistema binario" endl;
cin numero;
dividendo = numero;
while(dividendo = divisor){ //Mientras el dividendo sea mayor o igual que el divisor, es decir, mayor o igual que 2.
resto = dividendo % 2;
if(resto == 1)
binario = "1" + binario; //Si el resto es igual a 1 concatenamos 1 a la variable string llamada binario
else
binario = "0" + binario; // Sino concatemanos 0
//Es importante este orden de concatenación (primero el bit y luego el valor de la variable) esto para que nuestro número
//en sistema binario esté ordenado correctamente.
dividendo = dividendo/divisor; // Actualizamos el valor del dividendo dividiendolo entre 2.
}
if(dividendo == 1)
binario = "1" + binario; // Por último sí el valor final del dividendo es 1 concatenamos 1 sino concatenamos 0.
else
binario = "0" + binario;
cout "En sistema binario " numero " se escribe " binario endl;
return 0;
}

En este ejemplo lo que haremos será leer el número que queremos convertir a sistema binario, luego el programa se encargará de realizar operaciones con el operador módulo (%) de c++ para saber el resto de cada división y luego ir concatenando estos restos de divisiones y formar el número en sistema binario. Estas concatenaciones las hacemos usando estructuras selectivas, según se cumpla que el resto sea igual a 1 o 0.

Otra manera de realizar este algoritmo en c++ es haciendo uso de la clasestringstreampara convertir número enteros en cadenas (strings).

#include iostream
#include sstream // Para convertir el resto de la division de int a string.

using namespace std;

int main(){
int numero, dividendo, resto, divisor = 2;
string binario = "", ordenado = "";
stringstream stream; // De int a string
cout "Ingrese el numero decimal a convertir a sistema binario" endl;
cin numero;
dividendo = numero;
while(dividendo = divisor){
resto = dividendo % 2;
stream resto; // Almacena el resto de las divisiones concatenandolas en el objeto stream.
dividendo = dividendo/divisor;
}
stream dividendo;
binario = stream.str(); //Almacenamos en la variable llamada binario de tipo string los valores concatenados del objeto stream.
for(unsigned int i = 0; i binario.size(); i++)//Debemos ordenar los bits
ordenado = binario[i] + ordenado;
cout "En sistema binario " numero " se escribe " ordenado endl;
return 0;
}

Así como el ejemplo anterior leemos el número que queremos saber su representación en el sistema binario. El resto de la división lo vamos almacenando en elobjeto stream de tipo stringstream. A medida que vamos almacenando los restos estos se irán concatenando. Luego de concatenar todos los restos los guardamos en una variable de tipo stringbinario = stream.str();. Finalmente esta representación está al revés. Sí queremos la representación de 71 nos mostrará 1110001. Esto lo ordenaremos con el siguiente método.

for(unsigned int i = 0; i binario.size(); i++)
ordenado = binario[i] + ordenado;

Recordar que el tipo de dato string es una cadena de caracteres y es por esto que lo podemos manipular de esta manera.

Ejecución:

Ingrese el numero decimal a convertir a sistema binario
567
En sistema binario 567 se escribe 1000110111

¿Y en Java?

import java.util.Scanner;

public class DecimalABinario {
public static void main(String[] ar){
Scanner teclado = new Scanner(System.in);
int dividendo, resto, divisor = 2, numero;
String binario = "";
System.out.println("Ingrese el numero decimal a convertir a sistema binario");
numero = teclado.nextInt();
dividendo = numero;
while(dividendo = divisor){ //Mientras el dividendo sea mayor o igual que el divisor, es decir, mayor o igual que 2.
resto = dividendo % 2;
if(resto == 1)
binario = "1" + binario; //Si el resto es igual a 1 concatenamos 1 a la variable string llamada binario
else
binario = "0" + binario; // Sino concatemanos 0
//Es importante este orden de concatenación (primero el bit y luego el valor de la variable) esto para que nuestro número
//en sistema binario esté ordenado correctamente.
dividendo = dividendo/divisor; // Actualizamos el valor del dividendo dividiendolo entre 2.
}
if(dividendo == 1)
binario = "1" + binario; // Por último sí el valor final del dividendo es 1 concatenamos 1 sino concatenamos 0.
else
binario = "0" + binario;
System.out.println("En sistema binario " + numero + " se escribe " + binario);
}
}

Funciona igual que el primer ejemplo en c++ solo que está escrito en Java.

Otra forma mas sencilla sin hacer uso de estructuras selectivas sería solo concatenar los restos de la división con la variable String.

import java.util.Scanner;

public class DecimalABinario2 {
public static void main(String[] ar){
Scanner teclado = new Scanner(System.in);
int dividendo, divisor = 2, numero, resto;
String binario = "";
System.out.println("Ingrese el numero decimal a convertir a sistema binario");
numero = teclado.nextInt();
dividendo = numero;
while(dividendo = divisor){
resto = dividendo % divisor;
binario = resto + binario;
dividendo = dividendo/divisor;
}
binario = dividendo + binario;
System.out.println("En sistema binario " + numero + " se escribe " + binario);
}
}

Ingresamos el número decimal que queremos su representación en sistema binario, luego hacemos un ciclo que se repetirá mientras el dividendo sea mayor o igual que el divisor, es decir, 2. Calculamos el resto de cada división y el resultado lo vamos concatenando en la variable binario. Finalmente el último valor del dividendo lo concatenamos a la variable binario y mostramos en pantalla la representación binaria del número que ingresamos.

Ejecución:

Ingrese el numero decimal a convertir a sistema binario
71
En sistema binario 71 se escribe 1000111


También te podría interesar:
[Ejercicio resuelto c++ POO Herencia Vectores MVC] Una Asociación de Lancheros trasladan turistas.
Cuenta regresiva de minutos y segundos con c++.
Escribir en bloc de notas con c++ [Archivo/Ficheros c++].
Abrir una direccion web con c++.
Generar número aleatorio en Java Math.random().
Elevar un número a una potencia en java Math.pow.
[Ejercicio resuelto Java] Cuadrante en que se encuentra un punto en el plano.


Donate Old Cars to Charity Casino Service business software DUI lawyer Donate Car for Tax Credit life insurance quotes Photo Christmas cards royalty free images stock Mesothelioma Law Firm federal criminal defense attorney Register Free Domains Motor replacements Online Motor Insurance Quotes HOW TO DONATE A CAR IN CALIFORNIA car insurance quotes mn Auto Accident Attorney Online casino LOW CREDIT LINE CREDIT CARDS la personal injury lawyer mesothelioma HOME PHONE INTERNET BUNDLE best consolidation loan student mesothelioma trial attorney Car Insurance Quotes MN arizona auto accident attorney AUTO ACCIDENT ATTORNEY earthlink business internet Html email Cheap car insurance in Virginia home phone internet bundle seattle mesothelioma lawyer Casino reviews small business administration sba VIRTUAL DATA ROOMS att call conference saskatchewan auto insurance online motor insurance quotes Car Donate colorado mesothelioma lawyers Seo companies Psychic for free Dallas Mesothelioma Attorneys motorcycle accident lawyer san francisco Sell Annuity Payment Forensics Online Course structured settlement annuity companies Hire php developer personal injury solicitor Social media platforms Mobile casino city college in miami Make money online Australia broward county dui lawyer email bulk service Tech school FUTURISTIC ARCHITECTURE Live casino harddrive data recovery services world trade center footage baltimore mesothelioma attorneys Health Records Personal Health Record Auto Mobile Insurance Quote Insurance Companies what is structured settlement mesothelioma settlements amounts MET AUTO Hire php developers Auto Mobile Shipping Quote Hard drive Data Recovery Services Hire php programmers Dwi lawyer fortis health insurance temporary Business finance group Cheap Car Insurance for Ladies cloud identity and access management Register free domains injury lawyers Custom WordPress theme designer ROYALTY FREE IMAGES STOCK data recovery raid donate your car for money mesothelioma attorneys Criminal lawyer DALLAS MESOTHELIOMA ATTORNEYS Criminal defense lawyer CHEAP CAR INSURANCE IN VIRGINIA Php programmers for hire Injury Lawyers Psd to WordPress WordPress hosting mesotheliama Paperport promotional code HOLLAND MICHIGAN COLLEGE Business management software Bankruptcy lawyer New social media platforms hosted predictive dialers Car insurance quotes Utah Computer science classes online Php programmers mesotheloma Social media strategies hair removal washington dc Structures Annuity Settlement Car Insurance in South Dakota mesothelioma lawyer dallas Best social media platforms for business Online College Course miami personal injury attorney wisconsin mesothelioma attorney mesothelioma cases CAR DONATE PHD on Counseling Education Social media platforms for business Seo services Best Seo company Royalty Free Images Stock maritime lawyer houston injury attorney baton rouge Forensics online course Donate Your Car Sacramento california mesothelioma attorney hughes net business PHD IN COUNSELING EDUCATION Social media examiner Best social media platforms Seo company business voip solutions benchmark lending motorcycle lawyer los angeles Online Christmas cards structured settlements companies Car Insurance Quotes PA personal injury law firm mesothelioma lawsuit CHEAP CAR INSURANCE FOR LADIES Massage School Dallas Texas mesothelioma claims Custom Christmas cards buying an annuity calculator mesotheolima Christmas cards WordPress themes for designers NUNAVUT CULTURE anti spam appliance structured settlement sell Criminal defense attorneys Florida Social media management low credit line credit cards Italian cooking school CRIMINAL DEFENSE ATTORNEYS FLORIDA Home phone internet bundle lease management software Donate your Car for Money Proud Italian cook Psd to html criminal defense attorneys florida PAPERPORT PROMOTIONAL CODE car crash attorneys Cheap Auto Insurance in VA Email Bulk Service Online Classes WordPress theme designers Adobe illustrator classes Insurance Learning adobe illustrator WORLD TRADE CENTER FOOTAGE Social media tools uk homeowner loans adverse credit remortgage Criminal Defense Attorneys Florida CAR INSURANCE QUOTES PA Donate your car for money Social media campaigns new mexico mesothelioma lawyer utah mesothelioma lawyer business email web hosting Donate Car to Charity California BETTER CONFERENCING CALLS Donate Cars in MA structured settlement brokers selling structured settlement How to Donate A Car in California Donate Your Car for Kids Asbestos Lawyers Car Insurance Quotes Colorado Annuity Settlements Nunavut Culture Dayton Freight Lines Online Criminal Justice Degree Donate a Car in Maryland Mortgage Motor Replacements Cheap Domain Registration Hosting Donating a Car in Maryland CAR INSURANCE IN SOUTH DAKOTA quotes car Donate Cars Illinois Cheap Car Insurance in Virginia Donate your car Sacramento World trade center footage car insurance quotes cheap domain registration hosting student loan consolidation program Best Criminal Lawyers in Arizona Car Insurance Quotes Utah Low credit line credit cards Asbestos Lung Cancer Life Insurance Co Lincoln DONATE CARS IN MA Holland Michigan College Online motor insurance quotes Futuristic Architecture cheaper insurance companies Online Colleges Paperport Promotional Code cell cycle regulation ppt Hard drive data recovery services mesothelioma lawyer texas World Trade Center Footage personal injury lawyer sarasota fl Psychic for Free Low Credit Line Credit Cards car accident lawyers west palm beach Donate Car To Charity CALIFORNIA Donating a car in Maryland car insurance quotes pa HARDDRIVE DATA RECOVERY SERVICES Met Auto selling a structured settlement tucson car accident attorney Home Phone Internet Bundle register free domains structured settlement quote Donating Used Cars to Charity Neuson accident car florida lawyer structured settlement cash out auto accident attorney ONLINE COLLEDGES california motorcycle accident lawyer Webex Costs Data Recovery Raid integrated ehr Forex Trading Platform Better Conference Calls Mortgage Adviser Virtual Data Rooms Automobile Accident Attorney PhD in counseling education

No hay comentarios:

Publicar un comentario