要約を最初に置き、次に詳細な内容を置きます
元のコード:
符号ビット、正は 0、負は 1。
桁数。数値の絶対値のバイナリ表現。
[+1010B]オリジナル=0000 1010B;
[-1010B] オリジナル=1000 1010B;
ゼロには次の 2 つがあります。
[+0]オリジナル=0000 0000B;
[-0] オリジナル=1000 0000B;
元の逆補数コード シフト:
逆コード:
符号ビット、正は 0、負は 1。
値ビット。正は数値の絶対値の 2 進数表現であり、負は数値の絶対値の 2 進数表現の反転です。
[+1010B] 逆=0000 1010B;
[-1010B] 逆=1111 0101B;
ゼロには次の 2 つがあります。
[+0]リバース=0000 0000B;
[-0] 逆=1111 1111B;
補体:
符号ビット、正は 0、負は 1。
値ビット。正は数値の絶対値の 2 進表現、負は数値の絶対値の 2 進表現で、逆数の場合は 1 を加えたものです。
[+1010B] 補足=0000 1010B;
[-1010B] 補足=1111 0110B;
ゼロには次の 1 つがあります。
[0] 補数 = 0000 0000B;
フレームシフト:
符号ビット、正が 1、負が 0 です。
値ビット。正は数値の絶対値の 2 進表現、負は数値の絶対値の 2 進表現で、逆数の場合は 1 を加えたものです。
[+1010B] 補足=1000 1010B;
[-1010B]補足=0111 0110B;
ゼロには次の 1 つがあります。
[0] 補足=1000 0000B;
16 進変換:
①ダイレクトコンバージョン方式
1. 2 進数の 10 進数への変換
例: 2 進数の「1101100」
1101100 ← 2 進数の
6543210 ← 順位付け方法 2 進数の
10 進数への変換アルゴリズムの例:
1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20
↑ ↑
説明: 2 は基本システムを表し、次の数字は累乗です (0 から右から左に数えます)
=64+32+0+8+4+0+0
= 108
②土台を取り除いて残りを取る方法:
10 進数から 2 進数への変換を例にとると、10 進数 n を入力し、n を毎回 2 で割り、剰余を書き留め、その商を使用して 2 で割ります...商が 0 になるまで順番に繰り返します 。残りを終了 逆順に並べると、変換された 2 進数が形成されます。
基数間のすべての変換についても同じことが言えます。2 は任意の数に置き換えることができます。10 進数から2 進数、8 進数、16 進数、16 進数の 64
10 進数は N 基数になります。
public class Main {
public static void main (String[] args) {
int n = 64;//需要转换的数字
int m = 5; //转换的进制(如果大于10,需考虑使用其他字符表示)
int t = 0; //用来记录位数
int bin = 0; //用来记录最后的二进制数
int r = 0; //用来存储余数
while(n != 0){
r = n % m;
n = n / m; //注意:n为int,可以保证其肯定是一个整数,且是进制转换需要的整数
bin += r * Math.pow(10,t); //pow函数:10的t次方
t++;
}
System.out.println(bin);
}
}
N 基数から 10 進数へ:
public class Main {
public static void main (String[] args) {
int n = 224;//需要转换的数字
int m = 2; //进制
int des = 0; //储存转换后的结果
String s = new StringBuilder(String.valueOf(n)).reverse().toString(); //reverse使字符串倒序
for (int i = 0 ;i<s.length();i++){
int charIndex = s.charAt(i)-'0';
des += charIndex*Math.pow(m, i);
}
System.out.println(des);
}
}
パイプライン計算:
例:
例: 命令パイプラインが命令を値取得、解析、実行に分割し、3 つの部分の時間が値取得 2ns、解析 2ns、実行 1ns の場合。では、パイプライン サイクルとは何でしょうか。100 命令すべてを実行するには、どのくらいの時間がかかりますか?
パイプライン サイクル: 2ns
100 エントリに時間がかかる:
理論値: 最初に命令の消費時間を計算します: 2ns+2ns+1ns=5ns
5ns+(100—1)x2ns=203ns
実際の値: (3+99)x2ns=204ns