ブックマーク / zenn.dev/yohhoy (2)

  • PNGファイル爆発しろ!

    まえがき Web上で広く利用されるPNG(Portable Network Graphics)フォーマットは、デジタル画像を変化させずに小さいデータサイズへ変換する圧縮技術の一種です。PNGフォーマットはオリジナル画像を完全復元可能な可逆(lossless)圧縮ですから、JPEGフォーマットのように画像を歪めてしまう非可逆(lossy)圧縮ほどは小さくできません。それでもオリジナルのデジタル画像データの半分程度まではサイズ削減可能な画像圧縮アルゴリズムと言われています。[1] そげぶ いいぜ てめえが何でも思い通りに圧縮出来るってなら まずはそのふざけた幻想をぶち壊す!! (スペース都合によりAA省略) 記事では、PNGフォーマットを画像データ圧縮(compress)用途で利用するのではなく、オリジナル画像データよりも遥かに巨大なPNGファイル を生成します。 PNGフォーマットでは任意

    PNGファイル爆発しろ!
    yug1224
    yug1224 2023/04/24
  • Zig言語の一風変わった算術演算子

    最近ホットな話題に便乗して 一部で注目を集めはじめたプログラミング言語Zigの言語仕様を眺めていたところ、他のプログラミング言語では見かけない一風変わった算術演算子が提供されるようです。 足し算3種盛 いわゆる「足し算」を行う算術加算について、Zig言語では 3種類の演算子 が提供されます。 +: 通常の算術加算。結果が表現範囲を超える場合、プログラムは未定義動作となる。ビルドモードによってはエラーを報告してプログラム停止する。 +%: 循環(Wrapping)加算。結果が表現範囲を超える場合、値を2の補数表現とみなして下位ビットを代入する。 +|: 飽和(Saturating)加算。結果が表現範囲を超える場合、その整数型の最大値を代入する。 例えば8bit符号無し整数型(u8)/値域[0, 255]における足し算では、それぞれ次の演算結果が得られます。 足し算以外の算術演算に対しても同様

    Zig言語の一風変わった算術演算子
    yug1224
    yug1224 2022/07/17
  • 1