1樓:匿名使用者
你是要在輸出的時候,比如10,顯示為010嗎?
兩種方法,如果你知道你的數是多少位的,那麼 printf("%0nd", )即可。(n代表位數)
如果不知道是多少位,那就轉換成字串,然後再前邊加0輸出。
2樓:匿名使用者
不能加0阿,前面加0表示這是一個八進位制的數.
在c++程式設計裡,怎麼讓不足十的數前補0
3樓:匿名使用者
printf("%.2d%.2d", 2, 28) 格式化輸出用c庫要方便得多
4樓:匿名使用者
setw(n)可以定義輸出格式
5樓:匿名使用者
if( ((n%4)==0)&&(n%100)!=0)||(n%400==0) )這個是閏年的
條件。你可以考慮用a[2][12]這個陣列來存放閏年和非閏年的 每個月的天數。。。例如a[0][1]=31;代表非閏年的1月有31天。。。
那麼你在做日期比較的時候會很有條理。。關於不足10補零的問題。。這個可以先判斷一下如果小於10就先打一個0然後輸出數字 如果不是的話就 直接輸出那個數
c++中怎麼把一個十進位制數的某一個二進位制位改為0
6樓:匿名使用者
int change(int x, int n)
先把1左移n位,得到00010000形式的一個數字,然專後屬取反得到11101111形式的數字
,然後和原來的數進行「位與」操作。與0得0,與1不變。所以第n位就變成0其他位不變。如果你的n是從高位算的,稍微改改就行了。
7樓:讉莣熔燃氺
通過位運bai算可以快速實現。
以下列舉du前四位:
zhi首先 二進位制中dao的 0001 0010 0100 1000
對應十內進位制中的 1 2 4 8如果要讓一容個數x的第三位二進位制位變為0 操作為if(x | 4) x^=4; //如果 x在第三位為1 x 異或 0100
關於異或:
0^0=0
0^1=1
1^0=1
1^1=0;
通過位運算來實現二進位制操作是最快速的,用起來也很方便。
8樓:匿名使用者
你構造一個數,第n位為0,其餘為1,然後與上a就ok了
9樓:匿名使用者
int b=1< a&=~b; 10樓:匿名使用者 #include #include #include using namespace std; int main() 11樓:飄飄渺渺夢逍遙 itoa函式最簡單 詳情請看 版百權科 c++數字前怎麼加零 12樓:物理公司的 #include using namespace std; void main() ;sprintf(achour, "%02d", hour); cout< c++中如何給一個int型別的變數賦值成一個以零開頭的整數 13樓:幻の上帝 int型別只是整數,和數學中的定義一樣,不管字首有幾個0,值都相等。 在c/c++中,整版數字面量權的字首0表示八進位制。所以int a;a = 0908;肯定編譯錯誤,因為9不是八進位制的合法數字。 按lz的要求,應該只是輸出樣式的問題。即使用int儲存,這種也很簡單,只用c/c++標準庫就可以實現,例如c風格的printf("%06d",a);或者利用c++標準i/o的cout< ==== [原創回答團] 14樓:千鋒教育 可以呼叫iomanip庫中 來的setfill和setw方法自來設定int型的前導0。 比如:#include int main(int argc,char *argv)執行後輸出結果是:03 15樓:匿名使用者 是int的話,是不能你那樣賦值的。 為什麼要0開頭的整數? 可以 std::string str("0908"); std::stringstream ost; ost<>a; 16樓:80晴天 您好,這種定義是不合法的,你可以把a定義為字串,然後對a賦值0908 string a; a = 0908"; 你剛才說的學號問題使其十九字串實現的~ 17樓:匿名使用者 以0開頭的整數是八進位制,你給的例子是不合法的,八進位制的數只能是0-7. 18樓:柯墨 據我所知是不可以的,除非你將a轉為string型別 然後再在前面加個『0』賦給另一個string型別的b; 19樓:偷心的賊 a=0908是不行的,不過你可以輸出0908,這樣: a=908;cout<<'0'<
20樓:匿名使用者 你可以使用c++提供的物件導向的設計能力,自己設計一個類,用於實現你的想法,只要為其提供運算子方面的支援,就能靈活地使用了。 21樓:喜歡黑 0908根本就不是個整數啊,怎麼用int 十六進位制的0x0c是多少,為是麼c前面還要加一個0 22樓:優益 0x0c應該是一個暫存器的偏移地址。0x表示十六進位制,所以0x0c即表示十六進位制c相當於十進的12。 c前加一個0 是為了**整齊好看、易於閱讀, 比如: #define a 0xfc10 #define b 0x000c 0xf跟 0x0000f 在實際作用上是完全一樣的。 有一種說法認為c前面加0可能是因為暫存器佔8位,所以需要兩個16進位制數填滿:0c的二進位制是00001100,八位填滿了暫存器,可以參考。 23樓:匿名使用者 十進位制為12,即c的十進位制值。 前面加0可能是因為暫存器佔8位,所以需要兩個16進位制數填滿 0c的二進位制是00001100,八位填滿了暫存器 24樓: 加0 是為了**好看, 比如 #define a 0xfc10 #define b 0x000c 這樣就對齊了 25樓:小帆向前衝 0c即0ch,就是十進位制的12,規定0x表示16進位制 1 為了完成進位制的轉換,在主函式中宣告瞭個函式sum,主要用於將二進位制的每一位轉換為十進位制後的數相加,返回值就是相加後的和。另外定義了一個陣列array 8 用於存放輸入的八位二進位制數。2 然後使用了一個for迴圈語句,用於輸入八位二進位制數。3 在sum函式中,又宣告瞭一個power函式,... 字元型的數字轉為十進位制的數是用這個字元 0 即可,反過來就是 0 僅適用0 9的數字。轉八進位制和十六進位制需要通過十進位制進行轉換。c語言有轉換說明符 轉換說明符 a a 浮點數 十六進位制數字和p p 記數法 c99 c 字元 d 有符號十進位制整數 f 浮點數 包括float和doulbe ... includeint oer int a,int b return i int main 使用者輸入一個十進位制正整數,然後分別轉換成為二進位制數 八進位制數和十六進位制數輸出。是c 不是c include using namespace std int main cout 十六進位制使用格式化輸出...用c語言編寫二進位制轉換十進位制的程式
c語言如何將字元型的數字轉換為十進位制或八進位制或十六進位制的數
c 編寫程式將十進位制數轉化為八位二進位制輸出(要求用main