怎麼樣可以把16進位制數轉換成ASCII

2022-12-21 16:06:07 字數 4744 閱讀 6905

1樓:匿名使用者

ascii碼本身也是由8位的數字,指示表現的形式不同而已。

比如說字元 i j k l m其實就是十進位制的 105 106 107 108 109 也是十六進位制的0x69 0x6a 0x6b 0x6c 0x6d,它們在計算機內部的儲存方式都是二進位制儲存的。我想,你所位的轉換,是隻在螢幕上顯示的轉換。

比如說:

char a = 'm'

printf("display by decimalization: %d",a);

printf("display by hex: %x",a);

printf("display by character: %c",a);

怎麼將16進位制轉換成ascii碼? 5

2樓:高茂程

有沒有這種的轉換器我不知道!不過覺得可以用軟體 就能實現的! 先判斷一專個是是否為數字、如屬是則將其加30h、否則 其為字母、則將其加37h!

if(a[i]<=9)

else

3樓:

每個數字bai+0x30,每個字母+0x37就成了。比如du開頭五zhi個fad1e:

f的dao16進位制是1111,加0x37即回1111+00110111=01000110=0x46;

答a的16進位制是1010,加0x37即1010+00110111=01000001=0x41;

d的16進位制是1101,加0x37即1101+00110111=01000100=0x44;

1的16進位制是0001,加0x37即0001+00110111=00110001=0x31;

e的16進位制是1110,加0x37即1110+00110111=01000101=0x45。

所以16進位制數fad1e的ascii碼就是:46 41 44 31 45。

其他的你就照貓畫虎吧……

4樓:朝鮮大哥胖胖

16進位制數為抄0~f的組合(例如3fff, 就像襲10進位制數是bai0~9的組合一

樣du), 而ascii碼是一組符zhi號集合,它用一個

dao8位(一個位元組)的二進位制數來表示字元(因為計算機用二進位制數來運算), 其中0~9對應的二進位制數為0x30~0x39,

5樓:阿旭呢呀

ascii碼本身也是由8位的數字,指示表現的形式不同而已。

比如說字元 i j k l m其實專就是十進位制的 105 106 107 108 109 也是十六進屬制的0x69 0x6a 0x6b 0x6c 0x6d,它們在計算機內部的儲存方式都是二進位制儲存的。我想,你所位的轉換,是隻在螢幕上顯示的轉換。

比如說:

char a = 'm'

printf("display by decimalization: %d",a);

printf("display by hex: %x",a);

printf("display by character: %c",a);

6樓:匿名使用者

char(hex2dec())

7樓:黃賢宇

應該是1的16進位制是0001,加0x0即0001+00110111=00110001=0x31;

如何把一位16進位制的數轉換成對應的ascii碼 2

8樓:小米地瓜來

補充:之前第一段話說的有問題,所以修改了下,如下:(另外提交的時候沒注意,第一個兄弟的回答已經是正確的了^_^)

主要思想是0~9轉為對應的ascii碼時加30h,而a,b,c,d,e,f則加37h,比30h多出來的7h就是通過adc(多加了cf的01h)以及daa(多加了06h)實現的。

先說對0~9的,以5為例,

and al,0fh

add al,90h

變為95h

daa這個時候的daa,由於95h低位,高位都小於9,且無進位,所以不變

adc al,40h

95h + 40h + cf = d5h

daa低位不變,高位大於9,所以加60h,變為35h,且cf = 1

最終結果為35h,即字元5對應的ascii碼53.

然後是a~f,以c為例:

and al,0fh

add al,90h

變為9ch

daa這個時候的daa,先看低位,由於低位是c,大於9,所以加06h,結果變為a2h,再看高位,高位a,大於9,所以加60h,變為02h,cf = 1(有進位)

adc al,40h

adc操作,02h + 40h + cf = 43h

daa此時43h低高位都小於9,所以無變化。最後結果43h,也即c的ascii碼67

請教怎麼把16進位制字串轉換為ascii碼

把一位16進位制數轉化為對應的ascii碼。

9樓:慄慈

補充:之前第一段話說的有問題,所以修改了下,如下:(另外提交的時候沒注意,第一個兄弟的回答已經是正確的了^_^)

主要思想是0~9轉為對應的ascii碼時加30h,而a,b,c,d,e,f則加37h,比30h多出來的7h就是通過adc(多加了cf的01h)以及daa(多加了06h)實現的。

先說對0~9的,以5為例,

and al,0fh

add al,90h

變為95h

daa這個時候的daa,由於95h低位,高位都小於9,且無進位,所以不變

adc al,40h

95h + 40h + cf = d5h

daa低位不變,高位大於9,所以加60h,變為35h,且cf = 1

最終結果為35h,即字元5對應的ascii碼53.

然後是a~f,以c為例:

and al,0fh

add al,90h

變為9ch

daa這個時候的daa,先看低位,由於低位是c,大於9,所以加06h,結果變為a2h,再看高位,高位a,大於9,所以加60h,變為02h,cf = 1(有進位)

adc al,40h

adc操作,02h + 40h + cf = 43h

daa此時43h低高位都小於9,所以無變化。最後結果43h,也即c的ascii碼67

10樓:匿名使用者

這段程式的難點就是daa的作用:

如果al的低4位大於9或af=1,則al的內容加06h,並將af置1;然後如果al的高4位大於9或cf=1,則al的內容加60h,且將cf置1。如果兩個都不滿足,則將af,cf清零。

1. 如果al的值是0-9,那麼:

add al,90h ---------al變成90-99h

daa ---------al不變

adc al,40h ---------al為d0-d9

daa ---------al加上60h,變成30-39h,正是0-9的ascii碼。

2. 如果al的值是a-f,那麼:

add al,90h ---------al變成9a-9fh

daa ---------al加6,高4位變a,所以再加60h,成00-05,且cf=1

adc al,40h ---------al為41-46h,正是a-f的ascii碼。

daa ---------al不變

11樓:

理解daa的操作,就不難明白

以下擷取自intel手冊,應該已經很清楚了,無需更多描述old_al <- al;

old_cf <- cf;

cf <- 0;

if (((al and 0fh) > 9) or af <- 1)then

al <- al + 6;

cf <- old_cf or (carry from al <- al + 6);

af <- 1;

else

af <- 0;

fi;if ((old_al > 99h) or (old_cf = 1))

then

al <- al + 60h;

cf <- 1;

else

cf <- 0;fi;

12樓:匿名使用者

4個2進位制位為一個16進位制數,2進位制1111為16進位制f,2進位制中千位的1=8,百位的1=4,十位的1=2,個位的1=1,將各個位的數作相應轉換再相加,的到的數就是10進位制數0-15,可輕鬆轉換成16進位制。如01011100,可看成是兩組2進位制數0101和1100,則這個數就是16進位制的5c。

10轉16:

100以內一點的10轉16心算比較快,複雜的用「計算器」算了。10轉16用傳統的計算方式可以了,就是大於15小於256的10進位制數除以16為的值為十位的16進位制數,其餘數為個位的16進位制數,沒餘數則個位為0。如61的16進位制是3d,61除以16得3餘13,3作十位數,13轉成d為各位數。

16轉10:

用相反的道理,將十位數乘以16加上個位數。如5a,將5乘以16得80,加上a的10進位制10,結果是90。

16進位制數:2164851221轉換成ascii碼是多少吖?? 40

13樓:1絲冷風

一般把1個位元組16進位制數(或bcd碼)換成2個位元組ascii碼,所以轉換結果為:

2164851221 ==〉32 31 36 34 38 35 31 32 32 31

js怎樣把10進位制數轉換成16進位制數顯示

js把復10進位制轉為16進位制並制 顯示 定義一個轉換函式 var w function s 轉換方法 w parseint x,16 比如傳入15,列印出來 的結果是 0xf。使用tostring 函式,傳入一個引數16 十進位制的數如何轉換成r進位制的,r進位制的數如何轉換成十進位制的?1 將...

16進位制 怎麼表示??可以轉換成十進位制嗎?怎麼轉換

16進位制的簡寫表示形式為hex或下標16,如 39 16 十六進位制是可以轉換為十進位制的。具體的轉換方式是 把十六進位制數按位權形式,多項式和的形式,求其最後的和,就是其對應的十進位制數。簡稱 按權求和 具體的轉化方法如下圖 16進位制就是逢16進1,但我們只有0 9這十個數字,所以我們用a,b...

將十六進位制數offh轉換成二進位制數和十進位制數是多少

二進位制數11001010轉換成十進位制為202。二進位制和十進位制都是表示數 字的方式。二進位制,binaries,是逢2進位的進位制,0 1是基本算符,計算機運算採用二進位制。十進位制,decimals,是逢10進位的進位制,0 1 9是基本算符,生活中常用十進位制。從二進位制變成十進位制方法為...