という具合になっていて、最上位ビットの意味だけが符号なしとは異なる。加減は符号なしと同じ計算ですむ。便利。 符号なしよりも扱える値の上限が小さくなるけど、負になれるので便利。 32bit を 1bit(符号) + 15bit + 1bit(使わない) + 15bit に分けて。 15bit で扱える 0〜32767 のうち 0〜9999 を使って 1万進数 ということもあるかもしれない。 可変長整数 CPU が直接扱えない、大きな整数を扱うのが主な用途。 ruby の 整数や JavaScript の BigInt なんかが可変長整数となっている。 可変長にも符号なしがありえるけど、メリットが少ないのか、符号なしは見かけない気がする。 そう簡単にはオーバーフローしないのが便利。 逆に、計算ミスとか予期せぬ入力とかで思いがけない超巨大数になっても計算が続いてしまって DOS 攻撃みたいになる
![コンピュータの数の表現 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6242bd7c5332d5d0491538f6ea3a618fe3338585/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgyJUIzJUUzJTgzJUIzJUUzJTgzJTk0JUUzJTgzJUE1JUUzJTgzJUJDJUUzJTgyJUJGJUUzJTgxJUFFJUU2JTk1JUIwJUUzJTgxJUFFJUU4JUExJUE4JUU3JThGJUJFJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz02ZjQwZDUzMWU5MzAyYTE2NDYzZjk0YjNmYWU5YTViZg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwTmFiZXRhbmkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTBkYjUwMWJiZTU2ZTAxOGQyYjFjZGJkNjk2YWRkMjQw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dbdb06b163bb451791c689a3cacee85f0)