【C言語】int型の範囲の整数

C言語のint型は32ビット(4バイト)の符号付き整数を表現するために使用される。符号を考慮すると、int型は-2,147,483,648から2,147,483,647までの範囲の整数を表現できる
2,147,483,647 = 21億4748万3647
-2,147,483,648 = 21億4748万3647
2進数「00000000000000000000000000000000」(32桁)は10進数「0」である。
2進数「00000000000000000000000000000001」(32桁)は10進数「1」である。
~中略~
2進数「01111111111111111111111111111111」(32桁)は10進数「2,147,483,647」である。
2進数「10000000000000000000000000000000」(32桁)は10進数「-2,147,483,648」である。
2進数「10000000000000000000000000000001」(32桁)は10進数「-2,147,483,647」である。
2進数「10000000000000000000000000000002」(32桁)は10進数「-2,147,483,646」である。
~中略~
2進数「11111111111111111111111111111101」(32桁)は10進数「-3」である。
2進数「11111111111111111111111111111110」(32桁)は10進数「-2」である。
2進数「11111111111111111111111111111111」(32桁)は10進数「-1」である。

それと、int型は実装依存だからコンパイラでint型で表現できる数値が違う。
「Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland」ではint型は-2,147,483,648から2,147,483,647までの範囲の整数を表現している。

続きを読む

サーバー証明書の中身を見る(windows10)

任天堂ホームページ (nintendo.co.jp) ExternalLinkのサーバー証明書の中身を見てみる。
windows10において、Git Bash上でコマンドを実行してサーバー証明書の中身を見た。
使用したGit Bashのバージョンは「git version 2.40.0.windows.1」である。

RFC3280では、電子証明書はX.509ver3の形式が用いられると書いてある。
任天堂のX.509はVersion: 3 (0x2)となっているな。
X509v3 CRL Distribution Points(CRLの配布ポイント)が設定されている。
X509v3 CRL Distribution Points(CRLの配布ポイント)はX.509証明書の拡張フィールドの1つである。
X509v3 CRL Distribution Points拡張フィールドは、CRLがどこで入手可能かを示すために使用される。このフィールドには、CRLのダウンロードに使用するURLやファイルパスなどの情報が含まれる。

続きを読む

【C言語】ユークリッドの互除法(基本情報技術者試験 平成31年度 春 午前 問7)

C言語でユークリッドの互除法で最大公約数を求めるプログラムを作る。
ユークリッドの互除法は英語では「Euclidean algorithm」と表記される。
最大公約数は英語では「G.C.D(Greatest Common Divisor)」あるいは、「G.C.M (Greatest Common Measure)」である。

環境
windows10(64bit)
Borland C++ 5.5.1 for Win32

次のコードをEuclidean.cとする。

続きを読む

証明書失効リスト(CRL)

証明書失効リスト(Certificate Revocation List)

CRL(証明書失効リスト)とは – 意味をわかりやすく – IT用語辞典 e-Words ExternalLink ここから-
CRLとは、何らかの理由で有効期限前に失効させられたデジタル証明書(公開鍵証明書)のリスト。証明書の発行元の認証局(CA)が管理・公開しており、定期的に更新される。
CRL(証明書失効リスト)とは – 意味をわかりやすく – IT用語辞典 e-Words ExternalLink ここまで-

続きを読む

モジュール結合度について

モジュール同士の関連性の度合いをモジュール結合度と言う。
一般に、モジュール結合度が弱いほど個々のモジュールの独立度が高く、保守しやすくなる特徴があります。

モジュール結合度が弱い順から並べる。
データ結合 < スタンプ結合 < 制御結合 < 外部結合 < 共通結合 < 内容結合

覚え方は結合度が弱い順に「結合デス制御外部共通内容」と覚える。

続きを読む

openssl verify -CAfileコマンドの使い方

次のコマンドで証明書が認証局(CA)で署名された証明書であることを確認する。「openssl verify -CAfile」コマンドの使い方は次の通りである。
このコマンドは、サーバー証明書が認証局(CA)によって署名されているかどうかを確認する。
「CA bundle file」には、ルート証明書or証明書チェーン(ルート証明書+中間証明書+サーバー証明書)を指定する。「CA bundle file」には必ずルート証明書あるいはオレオレ証明書が含まれる必要がある。
「bundle file」という用語自体は、単に複数のファイルを1つにまとめたファイルのことを意味する。証明書の場合は証明書チェーンを意味する。
「server certificate file」には、サーバー証明書or中間証明書orルート証明書を指定する。


openssl verify -CAfile <CA bundle file> <server certificate file>
続きを読む