如何將十六進製制轉換為 二進位制 八進位制 十進位制

2021-07-11 09:56:30 字數 1295 閱讀 3425

1.十六進製制 –> 二進位制

void hextobin(char* hex, char* bin, int n = 20)

; int* temp = (int*)malloc(sizeof(int)*n);

memset(temp, 0, n * 4);

char* h = hex;

int i = 0, j = 0, k = 0, g = 0;

while (*h) //把十六進製制的每一位轉換為整數

dowhile (i>++g);

free(temp);

}

這個和二進位制轉十六進製制的思想是一樣的。

2.十六進製制 –> 八進位制

long

long hextooct(char* hex)

; while (*h++) ++p; //calc hex arrary length

h = hex;

while (*h) //把十六進製制的每一位轉換為整數

i = 0;

while (p) //十六進製制 --> 十進位制

dec += powl(16, --p)*temp[i++];//因為powl的緣故,十六進製制不能太大

memset(temp, 0, sizeof(temp));

i = 0;

while (dec) //十進位制 --> 八進位制

while (q < i)

oct += powl(10, q++)*temp[g++];

return oct;

}

注意:最大支援12位的16進製制

3.十六進製制轉換為十進位制

直接求權值和即可

long long hextodec(char* hex)

; char* h = hex;

int i = 0, p = 0;

while (*h++) ++p;

while (*hex)

i = 0;

while (p)

dec += powl(16, --p)*temp[i++];

return dec;

}

如何將二進位制轉換為八進位制 十進位制 十六進製制

值得注意的是,存放二進位制的陣列最後一位才是二進位制的第一位,例如 char bin 5 1100 那麼bin 3 才是二進位制的第一位.1.二進位制 八進位制 二進位制轉換為八進位制是非常簡單的,因為每三個二進位制就是一位八進位制.如果不足三位二進位制則補0.例如 10101 010 101 25...

進製轉換 二進位制轉十六進製制 十六進製制轉十進位制

這幾天在做乙個與plc互動的系統,plc會傳過來一些指令,這些指令是二進位制的格式,要轉為4位十進位制的指令來讀,下面是 部分 public class byteschange int beginindex 0 int length 16 string instructions while true...

將二進位制 八進位制 十六進製制轉換為十進位制

將二進位制 八進位制 十六進製制轉換為十進位制 二進位制 八進位制和十六進製制向十進位制轉換都非常容易,就是 按權相加 所謂 權 也即 位權 假設當前數字是 n 進製,那麼 對於整數部分,從右往左看,第 i 位的位權等於ni 1 對於小數部分,恰好相反,要從左往右看,第 j 位的位權為n j。更加通...