{"id":484,"date":"2022-06-23T14:07:39","date_gmt":"2022-06-23T17:07:39","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/competir\/?page_id=484"},"modified":"2022-07-01T18:34:19","modified_gmt":"2022-07-01T21:34:19","slug":"utilize-operadores-bitwise","status":"publish","type":"page","link":"http:\/\/www.galirows.com.br\/meublog\/competir\/dicas\/otimizacoes-para-o-codigo\/utilize-operadores-bitwise\/","title":{"rendered":"Utilize operadores bitwise"},"content":{"rendered":"\n<p>Conhecer os operadores <em>bitwise<\/em>, al\u00e9m de ajudar a resolver alguns problemas, tamb\u00e9m podem ser utilizados para melhorar o desempenho da execu\u00e7\u00e3o do c\u00f3digo. Para rever\/aprender sobre esses operadores, consulte <a href=\"http:\/\/www.galirows.com.br\/meublog\/programacao\/operadores-bitwise-cpp\/\" data-type=\"URL\" data-id=\"www.galirows.com.br\/meublog\/programacao\/operadores-bitwise-cpp\/\" target=\"_blank\" rel=\"noreferrer noopener\">www.galirows.com.br\/meublog\/programacao\/operadores-bitwise-cpp\/<\/a><\/p>\n\n\n\n<p>Por exemplo, a multiplica\u00e7\u00e3o por valores que s\u00e3o fatores de 2 apresenta melhor desempenho se for feita por deslocamento de bits do que pelo uso do operador de multiplica\u00e7\u00e3o. Vale lembrar que cada <em>left shift (&lt;&lt;)<\/em> em um valor \u00e9 o mesmo do que multiplicar ele por dois.<\/p>\n\n\n\n<p>Considerando o c\u00f3digo abaixo e sua execu\u00e7\u00e3o utilizando a linha 6 que utiliza o operador de multiplica\u00e7\u00e3o, o tempo de execu\u00e7\u00e3o do algoritmo \u00e9 entorno de <strong>2,01<\/strong> segundos. Ao inv\u00e9s disso, utilizando a opera\u00e7\u00e3o <em>left shift<\/em> da linha 7, o tempo de execu\u00e7\u00e3o \u00e9 entorno de <strong>1,99<\/strong> segundos. A diferen\u00e7a foi m\u00ednima, mas foi suficiente para o algoritmo executar em menos de 2 segundos, o que pode ser a diferen\u00e7a entre ter um <em>timeout<\/em> no tempo de execu\u00e7\u00e3o da solu\u00e7\u00e3o.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c line-numbers\">#include &lt;stdio.h>\n\nint main(void) {\n    int t=1;\n    for (int i=0; i&lt;999999999; i++) {\n        t*=2;\n        \/\/t = t>>1;\n    }\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>A diferen\u00e7a no tempo de execu\u00e7\u00e3o aumenta conforme se aumenta o valor pelo qual \u00e9 feita a multiplica\u00e7\u00e3o. Por exemplo, para multiplicar o valor por 6 (t*=6 e t&gt;&gt;3), os tempos s\u00e3o <strong>2,25 segundos<\/strong> e <strong>1,99 segundos<\/strong>, para o operador de multiplica\u00e7\u00e3o e <em>left shift<\/em>, respectivamente. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conhecer os operadores bitwise, al\u00e9m de ajudar a resolver alguns problemas, tamb\u00e9m podem ser utilizados para melhorar o desempenho da execu\u00e7\u00e3o do c\u00f3digo. Para rever\/aprender sobre esses operadores, consulte www.galirows.com.br\/meublog\/programacao\/operadores-bitwise-cpp\/ Por exemplo, a multiplica\u00e7\u00e3o por valores que s\u00e3o fatores de 2 apresenta melhor desempenho se for feita por deslocamento de bits do que pelo uso [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":460,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-484","page","type-page","status-publish","hentry"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/pages\/484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/comments?post=484"}],"version-history":[{"count":6,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/pages\/484\/revisions"}],"predecessor-version":[{"id":491,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/pages\/484\/revisions\/491"}],"up":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/pages\/460"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/media?parent=484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}