{"id":630,"date":"2016-12-20T15:08:36","date_gmt":"2016-12-20T17:08:36","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/programacao\/?p=630"},"modified":"2021-06-18T15:20:53","modified_gmt":"2021-06-18T18:20:53","slug":"transformar-binario-decimal","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/programacao\/transformar-binario-decimal\/","title":{"rendered":"Transformar n\u00famero bin\u00e1rio para decimal"},"content":{"rendered":"\n<p>Nesse post mostro duas maneiras de algoritmizar o processo de convers\u00e3o de um n\u00famero bin\u00e1rio para seu correspondente decimal. Na primeira forma \u00e9 feito a leitura do valor para uma vari\u00e1vel inteira e depois extra\u00eddo cada d\u00edgito do valor. Na segunda forma, a leitura \u00e9 feita para uma string (vetor de caracteres) e utilizado essa estrutura para convers\u00e3o. S\u00e3o m\u00e9todos distintos e que mostram como formas t\u00e3o diferentes de resolver um problema conseguem alcan\u00e7ar o mesmo resultado.<\/p>\n\n\n\n<p>Apenas para recordar, a transforma\u00e7\u00e3o entre essas bases pode ser feita com a forma polinomial a seguir:<\/p>\n\n\n\n<p>N\u00famero bin\u00e1rio: 1101<br>1&#215;2<sup>3<\/sup> + 1&#215;2<sup>2<\/sup> + 0x2<sup>1<\/sup> + 1&#215;2<sup>0 <\/sup>=&gt; 8 + 4 + 0 + 1 = 13<\/p>\n\n\n\n<p><strong>Solu\u00e7\u00e3o que extrai cada d\u00edgito do valor<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code lang:c decode:true\"><code lang=\"c\" class=\"language-c\">#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;math.h&gt;\n#include &lt;string.h&gt;\n\nint main(void) {\n\tint valorj, sobra, novoValor = 0;\n\tscanf(\"%i\", &amp;valor);\n\n\t\/\/pega os d\u00edgitos da direita para a esquerda\n\tfor (j = 0; j &lt; 6; j++) {\n\t\tsobra = valor - ((valor \/ 10)*10);\n\t\t\/\/printf(\"%i \\n\", sobra);\n\t\tvalor = valor \/ 10;\n\t\tnovoValor += sobra * pow(2,j);\n\t}\n\tprintf(\"Decimal: %i \\n\", novoValor);\n\n\treturn 0;\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Solu\u00e7\u00e3o utilizando string<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code lang:c decode:true\"><code lang=\"c\" class=\"language-c\">#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;math.h&gt;\n#include &lt;string.h&gt;\n\nint main(void) {\n\tchar numero[10];\n\tscanf(\"%s\", &amp;numero);\n\n\tint i, tam, novoValor = 0;\n\ttam = strlen(numero); \/\/verifica quantos d\u00edgitos tem no n\u00famero\n\t\n\t\/\/pega os d\u00edgitos da direita para a esquerda\t\n\tfor (i = tam-1; i &gt;= 0; i--) {\n\t\t\/\/printf(\"%c|\", numero[i]);\n\t\tif (numero[i] == '1') {\n\t\t\tnovoValor += pow(2,tam-1-i);\n\t\t}\n\t}\n\tprintf(\"Decimal: %i\", novoValor);\n\t\n\treturn 0;\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Experimente os c\u00f3digos:<\/strong> <a href=\"http:\/\/ideone.com\/6idvqI\">http:\/\/ideone.com\/6idvqI<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nesse post mostro duas maneiras de algoritmizar o processo de convers\u00e3o de um n\u00famero bin\u00e1rio para seu correspondente decimal. Na primeira forma \u00e9 feito a leitura do valor para uma vari\u00e1vel inteira e depois extra\u00eddo cada d\u00edgito do valor. Na segunda forma, a leitura \u00e9 feita para uma string (vetor de caracteres) e utilizado essa [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3],"tags":[42,41,36,37,23,14],"class_list":["post-630","post","type-post","status-publish","format-standard","hentry","category-c","tag-binario","tag-decimal","tag-for","tag-if","tag-string","tag-vetor"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/comments?post=630"}],"version-history":[{"count":6,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/630\/revisions"}],"predecessor-version":[{"id":1065,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/630\/revisions\/1065"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/media?parent=630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/categories?post=630"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/tags?post=630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}