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 可以被當成陣列來用,而...