Re: [問題] char與int
之前提出的問題,得到板上的高手回應,不勝感激!小弟尚有一疑問,想請教大家!
先舉前面兩個例子:
char a;
int b,c;
c=49676;
a=c;
b=a;
cout<<b<<endl;
cout出來的b是12。
假如c=2320,也就是:
char a;
int b,c;
c=2320;
a=c;
b=a;
cout<<b<<endl;
cout出來的b是16。
小弟的疑問是:電腦這樣算合理嗎?依照小弟的想法,49676及2320都超過char最大所
能存的範圍,如果要「縮」到127以內,應該是同除一個數,隨便假設,假設是512好了!
這樣子「等比例」縮小才合理呀!為何電腦是用取模的方式處理,這樣子本來49676比較
大,但「縮」到127以內後卻是12,2320比較小,但「縮」到127以內後卻是16,這樣子不
是很奇怪嗎?
在前面文章的推文裡,小弟曾提到自己在做影像處理,欲將原本65536個色階的
raw data以256個色階顯示,照理說如果電腦這樣子取模後所得的結果,應該會讓原本
65536個色階時的色階強弱順序全部亂掉(例如49676原本色階的值比較大,2320色階的值
比較小,而且小很多,可是「縮」到127以內後,前者變成12,後者變成16),可是顯出來
的圖竟極為合理,為什麼沒有像預期中因為像素色階的強弱順序亂掉而顯出一張亂七八糟
的圖呢?
這真是一個很詭異的問題,小弟百思不得其解,懇請高手們解答,萬分感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.240.230.141
→
05/13 22:16, , 1F
05/13 22:16, 1F
→
05/13 22:17, , 2F
05/13 22:17, 2F
→
05/13 22:18, , 3F
05/13 22:18, 3F
→
05/13 22:18, , 4F
05/13 22:18, 4F
→
05/13 22:19, , 5F
05/13 22:19, 5F
→
05/13 22:19, , 6F
05/13 22:19, 6F
→
05/13 22:21, , 7F
05/13 22:21, 7F
→
05/13 22:22, , 8F
05/13 22:22, 8F
→
05/13 22:24, , 9F
05/13 22:24, 9F
→
05/13 22:25, , 10F
05/13 22:25, 10F
→
05/13 22:28, , 11F
05/13 22:28, 11F
→
05/13 22:30, , 12F
05/13 22:30, 12F
→
05/13 22:31, , 13F
05/13 22:31, 13F
討論串 (同標題文章)