隨筆
C++博客
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
posts - 6, comments - 30, trackbacks - 0
關(guān)于除以2的n次方求余數(shù)的思考
本人由于剛接觸編程不久,思考的問(wèn)題沒(méi)有大家的那么深入。這次我僅僅只是一點(diǎn)基于學(xué)習(xí)的思考。今天在家里復(fù)習(xí)學(xué)校學(xué)過(guò)的功課,關(guān)于運(yùn)算操作符的那一章節(jié)。 編寫(xiě)一個(gè)程序:從界面輸入一個(gè)整數(shù),要求求該數(shù)除以8后的余數(shù)。這個(gè)題目確實(shí)很簡(jiǎn)單,只要用%運(yùn)算即可。但是我寫(xiě)出代碼后發(fā)現(xiàn)編譯器對(duì)于負(fù)數(shù)求模運(yùn)算后所得的余數(shù)是負(fù)數(shù)。當(dāng)然大家很容易想到此時(shí)加上除數(shù)即可達(dá)到題目的要求。我想這個(gè)代碼大都會(huì)寫(xiě),我就不再細(xì)述,但是今天我想輸?shù)梅椒ú⒉皇谴恕R粋€(gè)整型(int)占4個(gè)字節(jié),每個(gè)字節(jié)8位。那么每個(gè)int占32個(gè)位。如果我們把該整數(shù)化成8進(jìn)制,那么其8進(jìn)制表示的數(shù)的個(gè)位數(shù)就是所求的余數(shù)。因?yàn)槿绻粋€(gè)8進(jìn)制數(shù)是xyz,那么其等于x*8*8+y*8+z;除以8取余就是z;那么我們?cè)俾?lián)想到計(jì)算機(jī)的存儲(chǔ)數(shù)據(jù)的方式,二進(jìn)制。而二進(jìn)制轉(zhuǎn)化成8進(jìn)制的最簡(jiǎn)單的方法則是將該二進(jìn)制從右至左按每三個(gè)數(shù)為一單元轉(zhuǎn)化為8進(jìn)制作為一位。不夠的補(bǔ)0;那么由此可知,其正余數(shù)就是該數(shù)二進(jìn)制表示的末尾3位數(shù)。 那么只要用與運(yùn)算去保留后三位。即該數(shù)與上二進(jìn)制(111)即可,而從界面輸入的是10進(jìn)制,則要考慮轉(zhuǎn)化,很容易知道其為7。故設(shè)輸入的數(shù)位num,則num&7所得結(jié)果即是。
而對(duì)于2的n次方作為除數(shù)是則只要num&(2的n次方-1)
1
#include
<
iostream
>
2
using
namespace
std;
3
4
int
main()
5
{
6
int
num;
//
輸入的整數(shù)
7
int
i;
//
由于考慮除數(shù)不同,在此自己設(shè)置除數(shù)2的n次方
8
cout
<<
"
請(qǐng)輸入一個(gè)整數(shù):
"
;
9
cin
>>
num;
10
cout
<<
"
請(qǐng)輸入除數(shù):
"
;
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セ
閱讀(3939)
評(píng)論(5)
編輯
收藏
引用
所屬分類(lèi):
C++
FeedBack:
#
re: 關(guān)于除以2的n次方求余數(shù)的思考
2011-02-11 19:26 |
Cunch
想法不錯(cuò), 希望共同切磋
回復(fù)
更多評(píng)論
#
re: 關(guān)于除以2的n次方求余數(shù)的思考
2011-02-11 19:27 |
Cunch
想法確實(shí)不錯(cuò)
回復(fù)
更多評(píng)論
#
re: 關(guān)于除以2的n次方求余數(shù)的思考[未登錄](méi)
2011-02-11 21:13 |
zero
貌似很久前就有這道面試題了?
回復(fù)
更多評(píng)論
#
re: 關(guān)于除以2的n次方求余數(shù)的思考
2011-02-13 10:08 |
あ維wêiセ
嗯?是嗎?那我還要倍感慶幸呢@zero
回復(fù)
更多評(píng)論
#
re: 關(guān)于除以2的n次方求余數(shù)的思考[未登錄](méi)
2011-12-07 08:37 |
zhang
好像法
回復(fù)
更多評(píng)論
刷新評(píng)論列表
只有注冊(cè)用戶(hù)
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
關(guān)于除以2的n次方求余數(shù)的思考
中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式
關(guān)于Visual C++2010編譯器的問(wèn)題
有關(guān)二叉查找樹(shù)的一些功能(BST)
鏈表實(shí)驗(yàn)
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Copyright ©2025 あ維wêiセ Powered By:
博客園
模板提供:
滬江博客
<
2011年12月
>
日
一
二
三
四
五
六
27
28
29
30
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
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(1)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類(lèi)
C++(5)
Java(1)
隨筆檔案
2011年2月 (1)
2011年1月 (5)
文章分類(lèi)
個(gè)人總結(jié)(1)
文章檔案
2011年1月 (1)
搜索
最新評(píng)論
1.?re: 中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式
你可以考慮先將表達(dá)式中的數(shù)字字符轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字,成為一個(gè)元素,那么打印時(shí)加空格就好@js
--yangwei
2.?re: 中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式
是的,要犧牲一個(gè)來(lái)區(qū)分隊(duì)空和隊(duì)滿(mǎn)@jhayumu
--yangwei
3.?re: 中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式
(8+9*10)-4/2+3
與
(8+91*0)-4/2+3
怎么區(qū)分?
--js
4.?re: 關(guān)于除以2的n次方求余數(shù)的思考[未登錄](méi)
好像法
--zhang
5.?re: 關(guān)于Visual C++2010編譯器的問(wèn)題
樓上說(shuō)的比較對(duì),寫(xiě)模板最好用包含模型
用分離模型編譯容易出問(wèn)題
Boost中很多子庫(kù)都采用的是包含模型
--marmot
閱讀排行榜
1.?中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式(6031)
2.?關(guān)于除以2的n次方求余數(shù)的思考(3939)
3.?關(guān)于Visual C++2010編譯器的問(wèn)題(2762)
4.?鏈表實(shí)驗(yàn)(1953)
5.?有關(guān)二叉查找樹(shù)的一些功能(BST)(1922)
評(píng)論排行榜
1.?關(guān)于Visual C++2010編譯器的問(wèn)題(12)
2.?中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式(5)
3.?鏈表實(shí)驗(yàn)(5)
4.?關(guān)于除以2的n次方求余數(shù)的思考(5)
5.?初學(xué)java(一)(3)
欧美精品国产综合久久
|
久久精品99无色码中文字幕
|
久久久久久亚洲精品不卡
|
国产精品久久久亚洲
|
久久久久久伊人高潮影院
|
无码人妻少妇久久中文字幕
|
.精品久久久麻豆国产精品
|
国产精品久久久久a影院
|
久久九色综合九色99伊人
|
国产精品99久久精品爆乳
|
久久精品亚洲精品国产欧美
|
品成人欧美大片久久国产欧美
|
97超级碰碰碰久久久久
|
久久美女网站免费
|
精品久久久久久无码中文字幕
|
国内精品久久久久久麻豆
|
无夜精品久久久久久
|
中文字幕久久久久人妻
|
久久香综合精品久久伊人
|
日韩精品久久久久久
|
久久久久国产一级毛片高清板
|
久久精品国产国产精品四凭
|
伊人情人综合成人久久网小说
|
久久精品国产亚洲AV影院
|
国产精品欧美久久久天天影视
|
国内精品久久久久久久亚洲
|
久久久久久国产精品美女
|
国产亚洲色婷婷久久99精品
|
亚洲国产精品久久久久网站
|
综合久久一区二区三区
|
久久久久亚洲AV无码网站
|
欧洲成人午夜精品无码区久久
|
国产精品99久久99久久久
|
99久久国产综合精品五月天喷水
|
欧美性大战久久久久久
|
无码人妻少妇久久中文字幕蜜桃
|
99精品久久久久久久婷婷
|
亚洲精品乱码久久久久久
|
久久精品综合一区二区三区
|
久久亚洲私人国产精品vA
|
欧美色综合久久久久久
|