我似乎不太明白這種演算法是如何作業的......
代碼:
#include <stdio.h>
int main(void){
int number = 0;
while(number < 16){
if(number < 10){
printf("decimal: \t%d\n", number);
printf("hexadec.: \t%c\n", number '0');
}else{
printf("decimal: \t%d\n", number);
printf("hexadec.: \t%c\n", number - 10 'A');
}
printf("\n");
number ;
}
return 1;
}
輸出:
decimal: 0
hexadec.: 0
decimal: 1
hexadec.: 1
decimal: 2
hexadec.: 2
decimal: 3
hexadec.: 3
decimal: 4
hexadec.: 4
decimal: 5
hexadec.: 5
decimal: 6
hexadec.: 6
decimal: 7
hexadec.: 7
decimal: 8
hexadec.: 8
decimal: 9
hexadec.: 9
decimal: 10
hexadec.: A
decimal: 11
hexadec.: B
decimal: 12
hexadec.: C
decimal: 13
hexadec.: D
decimal: 14
hexadec.: E
decimal: 15
hexadec.: F
它準確地列印出我想要的東西,但我不明白它背后的程序。如果我沒記錯整數 'character' 通過 ascii 表將數字轉換為字符。
假設我們有數字 11,那么 11 - 10 = 1 在 ascii 中是 49,A 在 ascii 中是 65。那么 49 65 = 66 怎么算。我敢肯定這種想法是完全錯誤的,我只是想告訴你我認為它在后臺做了什么。
uj5u.com熱心網友回復:
當你改變
printf("hexadec.: \t%c\n", number - 10 'A');
對此:
printf("hexadec.: \t%c\n", number - 9 'A');
當“數字”超過 10 時,您得到的第一個字母是“B”。
那是因為您從“數字”的當前值開始計算字母。
因此,當數字的值為 12 時,您將其減去 10,并將值 2 存盤在數字“A” 2 =“C”中。
你只需數數字母。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/416410.html
標籤:
上一篇:在"xdpebpfSEC("tracepoint/xdp/xdp_devmap_xmit")"中,什么是xdp_devmap_xmit-這個跟蹤是否意味著某些內
下一篇:C編程-決策制定
