在C程序中,我在整數中存儲了十進制數837,其十六進制值是0x345。現在我想將該變量的相同十六進制值存儲爲整數變量,如345.如何做到這一點?如何將十進制數轉換爲十六進制數,然後將相應的結果作爲十進制值存儲在整數中
回答
是你的問題,將十進制數轉換爲十六進制格式,然後將該六進制數保存在一個整數。那麼這將這樣的伎倆
#include<stdio.h>
#include<stdlib.h>
int main()
{
char x[6]; 'just took 6,you can increase its size as per your int number
' Though it uses only 3 elements in these example
int i;
int a;
i=837; ' Load the i value with a decimal number say 837
sprintf(x,"%x",i); ' pass the hex format value to string x instead of stdout
' x contains x[0] ='3' x[1] ='4' x[2] ='5'
a=atoi(x); ' Convert the string format to integer
printf("%d",a); ' outputs 345
}
注意 的Hexanumbers甚至可能包括ABC和對於這一點,我不正是你是什麼邏輯會知道呢?忽略它或任何其他轉換?如果六進制數是3ab,你會存儲什麼?
我不知道你想做什麼,十六進制數字範圍是從0..F你不能存儲一個十進制數字(0..9)任意十六進制值。十六進制345的值是837。另一個有效的十六進制表示說「ABC」不能按照你描述的方式轉換。
要將值從十六進制轉換爲整數,你可以使用sscanf
與格式字符串「%X」
是i
之後將837
注意前面的「 0x「已被省略。
int i = 0;
sscanf(yourhexstring , "%x", &i);
感謝您的回覆,但我要求senario爲其存儲的變量,我想隔離它的十六進制表格的每個數字 – Anudeep
#include <stdio.h>
int main() {
int i = 0x345;
int j = 1;
int result = 0;
do {
result += (i&0xf)*j;
j *= 10;
} while (i/=(0x10));
printf("%i\n", result);
}
這個效果很好,除非有十六進制數字(i&0xf) > 0x9
。
例如,在int i = 0xABC
的情況下,十進制數字的範圍顯然不足以代表(如stacker指出的)數字s.t.這個十六進制值會產生類似1122
的東西。我不知道你希望在這種情況下能夠產生什麼功能。也許你應該擴展你的規範。
如果字符串總是有前綴「0X」,你可以用atoi(str+2)
它。
atoi
函數接受一個字符串參數,並試圖將其轉換爲十進制整數。通過在字符串中添加2,可以跳過字符串中的兩個第一個字符。
請注意,十六進制數字345與十進制數字345不相同。0x345是十進制837,345十進制是159十六進制。
- 1. 將十進制轉換爲十六進制和十六進制
- 2. 在Arduino上將整數/十進制轉換爲十六進制?
- 3. 將十六進制轉換爲二進制,然後轉換爲十進制
- 4. 將十六進制數轉換爲十進制格式
- 5. 將十進制數轉換爲十六進制
- 6. 在Python中將十六進制值轉換爲十進制
- 7. 如何在bash中將十進制轉換爲十六進制?
- 8. 如何在Python中將十六進制轉換爲十進制?
- 9. 如何在VIM中將十進制數轉換爲十六進制數?
- 10. 如何將十進制整數轉換爲單個十六進制字符? (C)
- 11. C:轉換十六進制值相同的十進制數
- 12. 將數字轉換爲十六進制
- 13. 將4字節十六進制轉換爲十進制值
- 14. VB.Net - 將多字節十六進制值轉換爲十進制
- 15. 將十進制值轉換爲32位浮點十六進制
- 16. 如何將十六進制字符串轉換爲十進制?
- 17. 如何在Emacs的calc中將十六進制轉換爲十進制數?
- 18. 將字符串轉換爲十六進制到十六進制
- 19. 在Swift中將十六進制轉換爲十進制
- 20. 在Lua 4中將十進制轉換爲十六進制?
- 21. 將十六進制轉換爲十進制在swift中
- 22. 將十六進制數組轉換爲二進制然後轉換爲十進制
- 23. 如何在Perl中將十進制數轉換爲十六進制字符串?
- 24. 使用限制將十進制轉換爲十六進制
- 25. php,轉換爲十六進制整數
- 26. 在Java中將十六進制數轉換爲十進制數(Android)
- 27. 將十進制轉換爲十六進制的C++程序
- 28. 如何十六進制轉換爲十六進制
- 29. Python將十進制轉換爲十六進制
- 30. 將十六進制轉換爲十進制(Lat/Lon)?
怎麼樣十六進制數字> 9? –