請問各位大神,C語言中有沒有八進制、十六進制無符號短整型和長整型轉換說明(應該怎么寫)?
uj5u.com熱心網友回復:
你這個問題問的本身就有問題(不管什么進制,記憶體都是二進制)int a=0377; //八進制,但是它到底還是個int
int b=0x00ff; //16進制,但是它到底還是個int
usigned int c = 255; //10進制,無符號int
long long int d = 255; //10進制,有符號長整型
a和b你想怎么轉換?都是int,值也一樣。除非你轉成字串來表示,否則只是記憶體高低位截斷的問題。
uj5u.com熱心網友回復:
//八進制、十六進制無符號短整型和長整型轉換
#include <stdio.h>
int main() {
unsigned short int usi;
unsigned long int uli;
usi=0xFFFFu;
printf("%ho,%hx,%hu\n",usi,usi,usi);//177777,ffff,65535
uli=0xFFFFFFFFl;
printf("%o,%x,%u\n",uli,uli,uli);//37777777777,ffffffff,4294967295
return 0;
}
uj5u.com熱心網友回復:
C Integer ConstantsAn “integer constant” is a decimal (base 10), octal (base 8), or hexadecimal (base 16) number that represents an integral value. Use integer constants to represent integer values that cannot be changed.
Syntax
integer-constant :
decimal-constant integer-suffix opt
octal-constant integer-suffix opt
hexadecimal-constant integer-suffix opt
decimal-constant :
nonzero-digit
decimal-constant digit
octal-constant :
0
octal-constant octal-digit
hexadecimal-constant :
0x hexadecimal-digit
0X hexadecimal-digit
hexadecimal-constant hexadecimal-digit
nonzero-digit : one of
1 2 3 4 5 6 7 8 9
octal-digit : one of
0 1 2 3 4 5 6 7
hexadecimal-digit : one of
0 1 2 3 4 5 6 7 8 9
a b c d e f
A B C D E F
integer-suffix :
unsigned-suffix long-suffix opt
long-suffix unsigned-suffix opt
unsigned-suffix : one of
u U
long-suffix : one of
l L
64-bit integer-suffix :
i64
Integer constants are positive unless they are preceded by a minus sign (–). The minus sign is interpreted as the unary arithmetic negation operator. (See Unary Arithmetic Operators in Chapter 4 for information about this operator.)
If an integer constant begins with the letters 0x or 0X, it is hexadecimal. If it begins with the digit 0, it is octal. Otherwise, it is assumed to be decimal.
The following lines are equivalent:
0x1C /* = Hexadecimal representation for decimal 28 */
034 /* = Octal representation for decimal 28 */
No white-space characters can separate the digits of an integer constant. These examples show valid decimal, octal, and hexadecimal constants.
/* Decimal Constants */
10
132
32179
/* Octal Constants */
012
0204
076663
/* Hexadecimal Constants */
0xa or 0xA
0x84
0x7dB3 or 0X7DB3
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/240240.html
標籤:C語言
上一篇:nx二次開發
下一篇:C語言題目,求大佬幫忙
