タグ

32bitと64bitに関するslay-tのブックマーク (5)

  • スマホサイズのPCが登場する!? Windows On ARMを知る

    PC向けのOSを動かすにも十分な性能を持つ ARMの64bitアーキテクチャ 詳しい話の前にARMの64bit版について簡単に確認しておく。ARMの64bitアーキテクチャは、ARMv8と呼ばれている。 これに対して32bitアーキテクチャはARMv7である。ただしARMv8は、32bitアーキテクチャを含んでいる。このため、ARMv8の64bitアーキテクチャ部分はAArch64、同32bitアーキテクチャは、AArch32と呼ばれる。AArchは「ARM Architecture」の略で、ARMv8は64bitアーキテクチャモードと32bitアーキテクチャモードを持ち、64bitアーキテクチャモードでは、32bitアーキテクチャの機械語命令を実行する32bitモードが利用できる。このあたりはインテルの64bitプロセッサと同じだ。 AArch64とAArch32は、命令セットが完全に異

    スマホサイズのPCが登場する!? Windows On ARMを知る
  • Python3で巨大な浮動小数計算の結果が変だったので理由を調べてみた - paiza times

    Photo by Jacob Munk-Stander 秋山です。 タイトルのとおり、Python3で巨大な浮動小数計算をした時の計算結果についての話です。 例えば、 11 × ÷ 10 という計算式があったとしましょう。 普通に人力で単純に計算しようと思ったら、10の23乗を計算して、それから11を掛けて…という手順になるかと思いますが、10の23乗の時点で 100000000000000000000000 という大きな数になってしまい(ちなみに千垓です。垓は万・億・兆・京の次になります)非常にわかりづらいですね。 これぐらいの桁数の数になってくると、プログラミングでもいわゆる32bitの整数型では表現することができません。64bit整数でも足りないので、128bit整数でやっと表現できるようになります。 私は普段paizaのスキルチェック問題の制作を担当していて、自分でもいろいろな問題

    Python3で巨大な浮動小数計算の結果が変だったので理由を調べてみた - paiza times
  • Linuxカーネルを2038年問題に対応させるには

    System call conversion for year 2038 [LWN.net] lwn.netLinuxカーネルを2038年問題に対応させるにはという記事が公開されている。 32bitLinuxカーネルのtime_tはsigned 32 bitなので、現行の32bitLinuxカーネルをそのまま使い続けるシステムは、2038年問題の影響を受ける。 問題の日付が近づくにつれ、32bitシステムは様々な楽しげな理由により障害を起こすことが予測されるので、今日のLWN読者は、退職から呼び戻されて、紀南を救うために英雄的な活躍をするだろう。今対策をしなければの話だが。 さて、32bit Linuxカーネルでも、time_tなどの時間の表現に64bitの値を使えば2038年問題は解決できるか。実は、問題はそれほど単純ではない。 カーネル内部の時間表現を64bitに移行するだけでは

  • ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?

    ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で? c++ - Replacing 32bit loop count variable with 64bit introduces crazy performance deviations - Stack Overflow stackoverflowで、興味深い質問が行われている。 簡単にまとめるとこうだ。std::uint64_t型の配列の各要素にx86-64のpopcnt(1になっているビット数を数える命令)を適用したい。 コードの肝心の部分を書くと、以下のようになる。 for (unsigned i=0;i<size/8;i+=4) { count+=_mm_popcnt_u64(buffer[i]); count+=_mm_popcnt_u64(buffer[i+1]); coun

  • 32bitと64bit、共通で使えるNSLogとかのフォーマット指定子 - Qiita

    2018/05/14 更新 残念ながら・・・%zdでも、Xcodeでwarningが出るようになってしまいました・・・ 現状では、NSIntegerは、%ldを使用し、longでキャストするしか方法が思いつかないですが・・・ 何か方法を見つけたら、追記します・・・ (そもそも、次期OSの発表時に全ての32bitデバイスをApple様のサポート対象から外すっていう、予告なのかな・・・ iOSの最新のデバイスは、64ビットになってきているが、 古いデバイスはまだ、32ビットだったりする。 32bitと64bitだと、 NSIntegerの型が変わり(32bitでint型、64bitでlong型) NSNotFoundも値が変わって、いろいろとめんどくさい。 (キャストで切り捨ててもいいけどもったいない気もする NSLogとかで一意に吐き出せないかな~と思ってたら、 以下のフォーマット指定子を使

    32bitと64bit、共通で使えるNSLogとかのフォーマット指定子 - Qiita
  • 1