久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3885|回復: 16
打印 上一主題 下一主題
收起左側

請教個C語言長整型的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:47286 發表于 2018-10-2 12:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
unsigned long a;
unsigned char b=1;
unsigned char c;

a=b<<16;
c=a>>16;

return c;

這時候 c返回的是0 是哪里錯了

左移和右移8位沒問題 16和24都不行 哪位前輩辛苦一下給講講
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:89515 發表于 2018-10-2 16:17 | 只看該作者
類型不一致,強制轉換
回復

使用道具 舉報

板凳
ID:258566 發表于 2018-10-2 16:50 | 只看該作者
unsigned char 8位,0-255
??????左移16位,想干嘛?
回復

使用道具 舉報

地板
ID:387733 發表于 2018-10-2 17:24 | 只看該作者
b是8位的,左移16次,早就溢出變成0了,因此a=0,a右移16次自然還是0了。
b左移8次,1移入進位標志,一起賦給a,a=0x100,a右移16次后 a=0x01,所以 c=1

評分

參與人數 1黑幣 +10 收起 理由
yousunny + 10 贊一個!

查看全部評分

回復

使用道具 舉報

5#
ID:404913 發表于 2018-10-2 18:45 | 只看該作者
長整形的和字符形的轉換會很出問題的
回復

使用道具 舉報

6#
ID:47286 發表于 2018-10-2 21:18 | 只看該作者
mengzhixinheng 發表于 2018-10-2 16:17
類型不一致,強制轉換

前輩 給講講怎么強制轉換 以前在書上看過 問題是現在都想不起是哪本書了 慚愧
回復

使用道具 舉報

7#
ID:47286 發表于 2018-10-2 21:21 | 只看該作者
cccc888 發表于 2018-10-2 16:50
unsigned char 8位,0-255
??????左移16位,想干嘛?

我想寫個定時程序 比較當前時間和設置時間時遇到跨年的問題 比如起始月是11月 結束月是明年1月 就不能直接對比當前日期>起始日期且<結束日期 所以想用移位的方法 把年月日時放入一個變量里 一個long是4個8位 原本打算年 月 日 分別左移 時到最低位 然后整個對比起始日期和結束日期
回復

使用道具 舉報

8#
ID:47286 發表于 2018-10-2 21:22 | 只看該作者
sxhwdz 發表于 2018-10-2 17:24
b是8位的,左移16次,早就溢出變成0了,因此a=0,a右移16次自然還是0了。
b左移8次,1移入進位標志,一起 ...

謝謝前輩
回復

使用道具 舉報

9#
ID:47286 發表于 2018-10-2 22:02 | 只看該作者
sxhwdz 發表于 2018-10-2 17:24
b是8位的,左移16次,早就溢出變成0了,因此a=0,a右移16次自然還是0了。
b左移8次,1移入進位標志,一起 ...

再次感謝前輩提示 說實話我沒看懂您說的 但您的提示指示了思路 我試了一下 可以了 但還想再麻煩您和其它前輩看看我寫的過程 我覺得自己寫的比較笨 更好的寫法應該是怎樣的

我寫的如下
unsigned long a;//需要使用的32位數據
unsigned long x;//用于8位-32位轉換的臨時變量
unsigned char b=1;//需要使用的8位數據
unsigned char c;//用于輸出的8位數據

x=0;//清零一下 因為我不止用這一個變量 這里寫的只是個思路
x|=b;//把8位數據轉到32位數據
x<<=24;//左移24次 讓b數據到最高8位a|=x;//把臨時變量x值轉到需要使用的32位變量a中
/*到這里 完成8位數據到32位數據的轉換過程*/

/*下面是從32位數據轉換成8位數據輸出*/
x=a;//把在用的32位數據復制到臨時變量x中
c=x>>24;//把32位最高8位數據存儲到變量b中

return c;//返回c值
回復

使用道具 舉報

10#
ID:404980 發表于 2018-10-3 08:38 | 只看該作者
unsigned long a; unsigned char b=1; unsigned char c; a=b<<16; c=a>>16; return c;
回復

使用道具 舉報

11#
ID:404980 發表于 2018-10-3 08:39 | 只看該作者
unsigned long a; unsigned char b=1; unsigned char c;a=b; a=a<<16; c=a>>16; return c;
回復

使用道具 舉報

12#
ID:405006 發表于 2018-10-3 10:36 | 只看該作者
類型不一致,需要強制轉換
回復

使用道具 舉報

13#
ID:387733 發表于 2018-10-4 08:13 | 只看該作者
dzbj 發表于 2018-10-2 22:02
再次感謝前輩提示 說實話我沒看懂您說的 但您的提示指示了思路 我試了一下 可以了 但還想再麻煩您和其它 ...

不用那么復雜
如下即可:

unsigned long a;
unsigned char b=1;
unsigned char c;

        a=b;              // a=0x00000001
        a=a<<16;     // a=0x00010000
        c=a>>16;     //  c=0x01
回復

使用道具 舉報

14#
ID:396450 發表于 2018-10-4 17:54 | 只看該作者
b你設成unsigned char , 8位元無符號, 左移16位元肯定是0
回復

使用道具 舉報

15#
ID:405392 發表于 2018-10-4 19:47 | 只看該作者
搞成一樣的,不要不同長度一起搞
回復

使用道具 舉報

16#
ID:47286 發表于 2018-10-4 23:27 | 只看該作者
sxhwdz 發表于 2018-10-4 08:13
不用那么復雜
如下即可:

感謝回復 明白了
回復

使用道具 舉報

17#
ID:47286 發表于 2018-10-4 23:28 | 只看該作者
回復 14,15樓 感謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品a免费一区久久电影 | 碰碰视频 | 成人欧美一区二区三区黑人孕妇 | 久久成人免费观看 | 欧美国产视频一区二区 | 成人久久网| 在线国产视频 | 特黄毛片视频 | 日韩播放 | 午夜视频免费在线观看 | 欧美在线观看一区 | 天堂在线中文字幕 | 一区二区三区视频在线 | 国产精品久久一区二区三区 | 国产精品观看 | 九九免费在线视频 | 99成人在线视频 | 天天干成人网 | 久久久国产精品网站 | 色综合一区| 视频一区二区中文字幕 | 亚洲高清视频在线 | 一级久久久久久 | 国产激情视频在线免费观看 | 麻豆久久 | 奇米超碰 | www.天天操.com | 午夜a区 | 激情影院久久 | 亚洲国产成人av | 欧美 中文字幕 | 色婷婷久久久久swag精品 | 人操人人干人 | 日一区二区| 亚洲欧美激情精品一区二区 | 中文字幕不卡一区 | 国产黄色精品 | 久久久亚洲一区 | 日本在线免费看最新的电影 | 欧美一级www片免费观看 | 午夜精品一区二区三区在线观看 |