怎麼把字串轉換成16進位制資料,怎麼把一個字串轉換成16進位制資料

2021-03-04 07:31:18 字數 4713 閱讀 9707

1樓:匿名使用者

由於資料在計算機中的表示,最終以二進

制的形式存在,所以有時候使用版二進位制,可權以更直觀地解決問題。但,二進位制數太長了。比如int 型別佔用4個位元組,32位。

比如100,用int型別的二進位制數表達將是:0000 0000 0000 0000 0110 0100 面對這麼長的數進行思考或操作,沒有人會喜歡。

用16進位制或8進位制可以解決這個問題。因為,進位制越大,數的表達長度也就越短。不過,為什麼偏偏是16或8進位制,而不其它的,諸如9或20進位制呢?

2、8、16,分別是2的1次方,3次方,4次方。這一點使得三種進位制之間可以非常直接地互相轉換。8進位制或16進位制縮短了二進位制數,但保持了二進位制數的表達特點。

怎麼將字串轉換成16進位制的資料

2樓:金色潛鳥

c/c++ 語言用 stdlib.h 裡的 strtol函式,就可以了,第三個引數用16。

long int strtol (const char* str, char** endptr, int base);

也可以用 sscanf函式讀的方式轉int, 用%x格式輸出專。

也可以一個一個字元屬 按 %x格式輸出。

問題是你的字串如何表達你要表達的數值意思。

怎麼把一個字串轉換成16進位制資料

3樓:金色潛鳥

要看你的字串bai是怎du麼寫的。

例如:zhi char s="07bc3a";

int v;

你可以用 sscanf(s,"%x",&v); 變成整型值dao,存入 v.

你也可以用 strtol 函式,

專 v = strtol(s, null, 16); 賦給 v.

列印屬16進位制數值: printf("%#x", v);

怎麼把一個字串轉換成16進位制資料

4樓:匿名使用者

#include

int fun(char *s,int n)return r;

}void main()

如何將字串轉換成十六進位制資料

5樓:文化廚子

字元型別是整型型別的一種,將其轉換成int型別,然後再輸出十六進位制形式即可。下面是一個示例程式。

#include

using namespace std;

int main()

{  char str_test = "hello world\n";

int limit = strlen(str_test);

for (int inx=0; inx!=limit; ++inx)//用static_cast將字元型別轉成int型別cout<(str_test[inx])<<"\t";

cout<

程式執行結果:

6樓:匿名使用者

是純數字還是字元,如果是純數字,那就求餘數唄,如果有字元的話,不清楚

怎樣把一個字串轉換成16進位制

7樓:陳可可

主要有兩個方法,其實都是對現有函式的使用:

方法1: sscanf()

函式名: sscanf

功 能: 從字串格式化輸入

用 法: int sscanf(char *string, char *format[,argument,...]);

以上的 format 為 %x 就是將字串格式化為 16 進位制數例子:#include

void main()

輸出:26

方法2: strtol()

函式名: strtol

功 能: 將字串轉換為長整數

用 法: long strtol(char *str, char **endptr, int base);

上面的base就是我們要轉換為幾進位制數

例子:#include

#include

void main()

輸出:27

其實還有一種方法,就是用一個初始化為0~9~a~f的字串陣列,也就是一個十六進位制對應表,用這個對應表即可算出一個十六進位制字串的數值,但這種發發太麻煩了,不推薦使用。

c語言如何把一個字串轉換成數字?

8樓:手機使用者

c語言有atoi、atol、atof等庫函式,可分別把ascii編碼的字串轉化為int、long、float型別的數字。

標頭檔案:stdlib.h

函式原型:int atoi(const char* nptr);

(另外兩個類似)

舉個例子:

char *str="123";

int num=atoi(str);

執行後,num的值被初始化為123

9樓:幻翼高達

c語言中,可以使用atoi函式將字串轉換為數字,如atoi("123")可以得到數字123。

atoi (表示 ascii to integer)是把字串轉換成整型數的一個函式,應用在計算機程式和辦公軟體中。int atoi(const char *nptr) 函式會掃描引數 nptr字串,會跳過前面的空白字元(例如空格,tab縮排)等。

如果 nptr不能轉換成 int 或者 nptr為空字串,那麼將返回0。特別注意,該函式要求被轉換的字串是按十進位制數理解的。atoi輸入的字串對應數字存在大小限制(與int型別大小有關),若其過大可能報錯-1。

10樓:匿名使用者

#include

#include

#include

char str[1000];

int* change(char *str)number = (int*) malloc( sizeof(int) * (n+1) );

//上面這

一段用來分析一共有多少個數,以此分配空間

n = i = j = 0;

while (str[i])

number[0] = n;

return number;

}int main()

11樓:匿名使用者

**如下,應該存放在b[10]陣列中

#include

#include

#include

int main()

;int b[10];

int i,j;

int flag=0;

int n;

int num;

for(i=0;!flag;i++)

else

num+=(a[i][j]-48)*pow(16,(n-j-1));

}b[i]=num;

if(num==0)

flag=1;

} *(b+i)=-1;

for(i=0;*(b+i)!=-1;i++)return 0;}

12樓:匿名使用者

char a[100];

int b[100];

for(i=0;i<100;i++)

b[i]=a[i]-'0';

這樣就可以了

13樓:俺做有錢人

//輸入任意一個數字,轉換為字串輸出

14樓:匿名使用者

應用強制轉化

例如「char a='a';

int (a);

」這樣輸出的是a的ascii碼,值為97。

用atoi() 函式可以的

15樓:匿名使用者

應用強制轉化

例如「char a='a';

int (a);

」輸出的a應該就是數字了

將一個字串怎麼轉化成十六進位制數

16樓:名動漫家的老王

主要有兩個方法,其實都是對現有函式的使用:

方法1: sscanf()

函式名: sscanf

功 能: 從字串格式化輸入

用 法: int sscanf(char *string, char *format[,argument,...]);

以上的 format 為 %x 就是將字串格式化為 16 進位制數例子:#include

void main()

輸出:26

方法2: strtol()

函式名: strtol

功 能: 將字串轉換為長整數

用 法: long strtol(char *str, char **endptr, int base);

上面的base就是我們要轉換為幾進位制數

例子:#include

#include

void main()

輸出:27

其實還有一種方法,就是用一個初始化為0~9~a~f的字串陣列,也就是一個十六進位制對應表,用這個對應表即可算出一個十六進位制字串的數值,但這種發發太麻煩了,不推薦使用。

16進位制字串轉換成數字的問題,C ,16進位制轉化問題,字串轉化成數字

long ltemp strtol 0xa10b null,16 這樣的話,就將0xa10b這個十六制形式的字串轉為十進位制的數字了.注 strtol的功能就是將字串轉為數字,而後面的16就是進位制,根據需要,你可以是二進位制,八進位制,十進位制,或是十六進位制應該都是可以的.如果出現以下情形之一,...

八進位制怎樣轉換成16進位制,怎麼把十六進位制轉化為八進位制

先把八進位制轉成二進位制或是十進位制.再轉成十六進位制.1 二進位制數 八進位制數 十六進位制數轉十進位制數 有一個公式 二進位制數 八進位制數 十六進位制數的各位數字分別乖以各自的基數的 n 1 次方,其和相加之和便是相應的十進位制數。個位,n 1 十位,n 2.舉例 110b 1 2的2次方 1...

c字串如何轉化為數字C,怎麼把字元轉換成數字

你可以叫 stringstream 和 vector 幫忙。下面的 裡 dbl array 既是你要建立的實數陣列 real 代表你讀到的字串 include include include using namespace std int main 值得一提的是,vector 可以被當成陣列來用,而...