unsigned 赋值负数输出情况 & printf输出格式
生活随笔
收集整理的這篇文章主要介紹了
unsigned 赋值负数输出情况 & printf输出格式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
%d 有符號10進(jìn)制整數(shù)
%ld 長整型
%hd短整型
%i 有符號10進(jìn)制整數(shù)
%o 無符號8進(jìn)制整數(shù)
%u 無符號10進(jìn)制整數(shù)
%x 無符號的16進(jìn)制數(shù)字,并以小寫abcdef表示
%X 無符號的16進(jìn)制數(shù)字,并以大寫ABCDEF表示
%F/f 浮點(diǎn)數(shù) %E/e 用科學(xué)表示格式的浮點(diǎn)數(shù)
%g 使用%f和%e表示中的總的位數(shù)表示最短的來表示浮點(diǎn)數(shù) G 同g格式,但表示為指數(shù)
%c 單個(gè)字符
%s 字符串
unsigned int a = -1;
unsigned short b = -1;
unsigned char c = -1;
printf("%u, %d, %d, ",a,b,c);
輸出:4294967295, 65535, 255,
unsigned int a = -1;
unsigned short b = -1;
unsigned char c = -1;
printf("%d, %d, %d, ",a,b,c);
輸出:-1, 65535, 255,
a定義為unsigned 輸出應(yīng)該和上面的一樣為4294967295啊
因?yàn)?d是按int輸出,所以后面兩個(gè)數(shù)的存儲(chǔ)仍然是按照所存儲(chǔ)二進(jìn)制輸出,沒有涉及到int最高位的符號位
/*
us的二進(jìn)制表示是0xffff,以4個(gè)字節(jié)的int類型輸出時(shí)表示的是0x0000ffff,所以輸出65535
un的二進(jìn)制表示是0xffffffff,以4個(gè)字節(jié)的int類型輸出時(shí)表示的是-1,所以輸出-1
*/
unsigned int a = -1;
unsigned short b = -1;
unsigned char c = -1;
printf("%d, %hd, %d, ",a,b,c);
輸出:-1, -1, 255,
啊,各種地方都需要注意啊
如果使用cout來輸出:
cout<< a<<endl;
cout<< b<<endl;
cout<< c<<endl;
輸出:4294967295, 65535,
c我如果為-1沒有輸出,如果是0-255之間為對應(yīng)的ascii碼
cout<<us<<endl; // -1在無符號的short數(shù)據(jù)中是65535
cout<<un<<endl; // -1在無符號的int數(shù)據(jù)中是4294967295
總結(jié)
以上是生活随笔為你收集整理的unsigned 赋值负数输出情况 & printf输出格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java placeholder_jav
- 下一篇: PCIe的事务传输层的处理(TLP)