隨筆
C++博客
首頁
新隨筆
聯系
聚合
管理
posts - 6, comments - 30, trackbacks - 0
關于除以2的n次方求余數的思考
本人由于剛接觸編程不久,思考的問題沒有大家的那么深入。這次我僅僅只是一點基于學習的思考。今天在家里復習學校學過的功課,關于運算操作符的那一章節。 編寫一個程序:從界面輸入一個整數,要求求該數除以8后的余數。這個題目確實很簡單,只要用%運算即可。但是我寫出代碼后發現編譯器對于負數求模運算后所得的余數是負數。當然大家很容易想到此時加上除數即可達到題目的要求。我想這個代碼大都會寫,我就不再細述,但是今天我想輸得方法并不是此。一個整型(int)占4個字節,每個字節8位。那么每個int占32個位。如果我們把該整數化成8進制,那么其8進制表示的數的個位數就是所求的余數。因為如果一個8進制數是xyz,那么其等于x*8*8+y*8+z;除以8取余就是z;那么我們再聯想到計算機的存儲數據的方式,二進制。而二進制轉化成8進制的最簡單的方法則是將該二進制從右至左按每三個數為一單元轉化為8進制作為一位。不夠的補0;那么由此可知,其正余數就是該數二進制表示的末尾3位數。 那么只要用與運算去保留后三位。即該數與上二進制(111)即可,而從界面輸入的是10進制,則要考慮轉化,很容易知道其為7。故設輸入的數位num,則num&7所得結果即是。
而對于2的n次方作為除數是則只要num&(2的n次方-1)
1
#include
<
iostream
>
2
using
namespace
std;
3
4
int
main()
5
{
6
int
num;
//
輸入的整數
7
int
i;
//
由于考慮除數不同,在此自己設置除數2的n次方
8
cout
<<
"
請輸入一個整數:
"
;
9
cin
>>
num;
10
cout
<<
"
請輸入除數:
"
;
11
cin
>>
i;
12
num
=
num
&
(i
-
1
);
13
cout
<<
num
<<
endl;
14
return
0
;
15
}
posted on 2011-02-03 21:17
あ維wêiセ
閱讀(3969)
評論(5)
編輯
收藏
引用
所屬分類:
C++
FeedBack:
#
re: 關于除以2的n次方求余數的思考
2011-02-11 19:26 |
Cunch
想法不錯, 希望共同切磋
回復
更多評論
#
re: 關于除以2的n次方求余數的思考
2011-02-11 19:27 |
Cunch
想法確實不錯
回復
更多評論
#
re: 關于除以2的n次方求余數的思考[未登錄]
2011-02-11 21:13 |
zero
貌似很久前就有這道面試題了?
回復
更多評論
#
re: 關于除以2的n次方求余數的思考
2011-02-13 10:08 |
あ維wêiセ
嗯?是嗎?那我還要倍感慶幸呢@zero
回復
更多評論
#
re: 關于除以2的n次方求余數的思考[未登錄]
2011-12-07 08:37 |
zhang
好像法
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
關于除以2的n次方求余數的思考
中綴表達式轉為后綴表達式
關于Visual C++2010編譯器的問題
有關二叉查找樹的一些功能(BST)
鏈表實驗
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright ©2025 あ維wêiセ Powered By:
博客園
模板提供:
滬江博客
<
2011年2月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
C++(5)
Java(1)
隨筆檔案
2011年2月 (1)
2011年1月 (5)
文章分類
個人總結(1)
文章檔案
2011年1月 (1)
搜索
最新評論
1.?re: 中綴表達式轉為后綴表達式
你可以考慮先將表達式中的數字字符轉換成對應的數字,成為一個元素,那么打印時加空格就好@js
--yangwei
2.?re: 中綴表達式轉為后綴表達式
是的,要犧牲一個來區分隊空和隊滿@jhayumu
--yangwei
3.?re: 中綴表達式轉為后綴表達式
(8+9*10)-4/2+3
與
(8+91*0)-4/2+3
怎么區分?
--js
4.?re: 關于除以2的n次方求余數的思考[未登錄]
好像法
--zhang
5.?re: 關于Visual C++2010編譯器的問題
樓上說的比較對,寫模板最好用包含模型
用分離模型編譯容易出問題
Boost中很多子庫都采用的是包含模型
--marmot
閱讀排行榜
1.?中綴表達式轉為后綴表達式(6062)
2.?關于除以2的n次方求余數的思考(3969)
3.?關于Visual C++2010編譯器的問題(2795)
4.?鏈表實驗(1975)
5.?有關二叉查找樹的一些功能(BST)(1941)
評論排行榜
1.?關于Visual C++2010編譯器的問題(12)
2.?中綴表達式轉為后綴表達式(5)
3.?鏈表實驗(5)
4.?關于除以2的n次方求余數的思考(5)
5.?初學java(一)(3)
亚洲精品乱码久久久久久久久久久久
|
一级a性色生活片久久无
|
久久综合久久自在自线精品自
|
婷婷伊人久久大香线蕉AV
|
99国产精品久久久久久久成人热
|
久久免费精品视频
|
久久综合九色综合欧美就去吻
|
国产色综合久久无码有码
|
久久久精品视频免费观看
|
国产精品久久自在自线观看
|
精品综合久久久久久88小说
|
日日噜噜夜夜狠狠久久丁香五月
|
99久久国产综合精品五月天喷水
|
中文字幕久久波多野结衣av
|
久久久久久国产a免费观看不卡
|
久久久久久久久无码精品亚洲日韩
|
久久99久久成人免费播放
|
国产精品岛国久久久久
|
亚洲va久久久噜噜噜久久狠狠
|
亚州日韩精品专区久久久
|
久久精品免费观看
|
国产精品久久国产精麻豆99网站
|
一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区
|
一级做a爰片久久毛片毛片
|
久久国产精品-久久精品
|
色综合久久久久久久久五月
|
久久亚洲国产最新网站
|
国产91色综合久久免费分享
|
久久99亚洲网美利坚合众国
|
一本一道久久综合狠狠老
|
久久狠狠爱亚洲综合影院
|
久久夜色精品国产噜噜亚洲a
|
婷婷久久综合九色综合九七
|
久久久久噜噜噜亚洲熟女综合
|
国产毛片久久久久久国产毛片
|
国产AⅤ精品一区二区三区久久
|
久久夜色精品国产亚洲
|
99久久无码一区人妻
|
狠狠精品干练久久久无码中文字幕
|
AV无码久久久久不卡蜜桃
|
久久天天躁狠狠躁夜夜躁2O2O
|