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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

IAR STM8 C語言中定義的unsigned long int數(shù)據(jù)類型最大值只能是32768

[復制鏈接]
跳轉到指定樓層
樓主
ID:562798 發(fā)表于 2022-6-7 20:09 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
我想在IAR STM8S  中定義一個4字節(jié)變量  存放充值的金額,結果當數(shù)據(jù)  CZ超過32768的時候就錯誤了!不知道是哪里出問題了~~大神指點下吧~unsigned   long   int   CZ;
.
CZ=CZ+num2;  
.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2022-6-7 21:58 | 只看該作者
要學會查編譯器手冊。
回復

使用道具 舉報

板凳
ID:329625 發(fā)表于 2022-6-7 22:00 | 只看該作者
你查一下 long int 是幾位數(shù)據(jù),應該是達到最大值 超出范圍
回復

使用道具 舉報

地板
ID:562798 發(fā)表于 2022-6-7 23:42 | 只看該作者
17337161031 發(fā)表于 2022-6-7 22:00
你查一下 long int 是幾位數(shù)據(jù),應該是達到最大值 超出范圍

我理解的long  int  應該是4個字節(jié)的數(shù)據(jù)!但是實際上這個值只能取到32767以內
回復

使用道具 舉報

5#
ID:883242 發(fā)表于 2022-6-7 23:55 | 只看該作者
donny123800 發(fā)表于 2022-6-7 23:42
我理解的long  int  應該是4個字節(jié)的數(shù)據(jù)!但是實際上這個值只能取到32767以內

你要學會查閱編譯器手冊的能力。
回復

使用道具 舉報

6#
ID:161164 發(fā)表于 2022-6-8 09:28 | 只看該作者
donny123800 發(fā)表于 2022-6-7 23:42
我理解的long  int  應該是4個字節(jié)的數(shù)據(jù)!但是實際上這個值只能取到32767以內


回復

使用道具 舉報

7#
ID:562798 發(fā)表于 2022-6-8 17:28 | 只看該作者

多謝!我換個類型試試看!
回復

使用道具 舉報

8#
ID:624769 發(fā)表于 2022-6-8 18:02 來自觸屏版 | 只看該作者
donny123800 發(fā)表于 2022-6-7 23:42
我理解的long  int  應該是4個字節(jié)的數(shù)據(jù)!但是實際上這個值只能取到32767以內

一般情況下,long是long,int是int。
long int 應該是你自創(chuàng)的類型,自創(chuàng)類型不是不可以,但你如果希望達到你的預期效果的話,是不是應該把編譯器先設定好?
回復

使用道具 舉報

9#
ID:562798 發(fā)表于 2022-6-8 21:45 | 只看該作者
188610329 發(fā)表于 2022-6-8 18:02
一般情況下,long是long,int是int。
long int 應該是你自創(chuàng)的類型,自創(chuàng)類型不是不可以,但你如果希望 ...

long 定義的變量一樣的不能超過32767  只要超過這個范圍一定出錯~
回復

使用道具 舉報

10#
ID:562798 發(fā)表于 2022-6-8 21:45 | 只看該作者
17337161031 發(fā)表于 2022-6-7 22:00
你查一下 long int 是幾位數(shù)據(jù),應該是達到最大值 超出范圍

4字節(jié)的數(shù)據(jù)
回復

使用道具 舉報

11#
ID:562798 發(fā)表于 2022-6-8 21:46 | 只看該作者
donny123800 發(fā)表于 2022-6-8 21:45
long 定義的變量一樣的不能超過32767  只要超過這個范圍一定出錯~

所以不知道是哪里出問題了!多謝大俠指點哈!
回復

使用道具 舉報

12#
ID:883242 發(fā)表于 2022-6-8 22:23 | 只看該作者
donny123800 發(fā)表于 2022-6-8 21:46
所以不知道是哪里出問題了!多謝大俠指點哈!

六樓已經(jīng)貼出編譯器手冊,那就不是long數(shù)據(jù)長度的問題,應該出在別的地方,多貼一些代碼。
回復

使用道具 舉報

13#
ID:562798 發(fā)表于 2022-6-9 08:23 | 只看該作者
Hephaestus 發(fā)表于 2022-6-8 22:23
六樓已經(jīng)貼出編譯器手冊,那就不是long數(shù)據(jù)長度的問題,應該出在別的地方,多貼一些代碼。

問題就是現(xiàn)在我給變量直接賦值  如果取值在0~32767 這個范圍內就正常    取值32768~65536 之間就錯誤   超出65536就正常  就是不知道是哪里出問題了!本人實在是菜鳥!找不到問題在哪里了!
回復

使用道具 舉報

14#
ID:1033099 發(fā)表于 2022-6-9 09:19 | 只看該作者
有符號整形變量int型的,在c語言里面規(guī)定是用兩個字節(jié)也就是16個二進制位來表示的。最高為用來表示正負,后面還有15位數(shù),于是一共可以表示2的15次方個數(shù)字,也就是32768個,但是呢,數(shù)字0是用的16個二進制0表示的,所以正數(shù)只能到32767了,負數(shù)則是到-32768。所以它是因為變量為負數(shù)報錯。
回復

使用道具 舉報

15#
ID:1033099 發(fā)表于 2022-6-9 09:37 | 只看該作者
int本來不就是16位么? 在很久很久以前,C語言才出現(xiàn)的時候,計算機的字寬是16位,int于是也就是16位. 后來出現(xiàn)了32位機的時候,int才有32位寬.不過在8位和16位的CPU上,int還是16位.這是編譯器的問題,如果編譯器將int認為16位,那么在這個編譯環(huán)境中就是16位,如:Keil C和IAR中int都是16位,在IAR FOR STM8中用unsigned long int\unsigned int\unsigned long\long都不行,最多只能到16位了。此外IAR會把用完的局部變量優(yōu)化掉。最好定義為全局變量然后觀察,不然,有可能被優(yōu)化掉了,什么也看不到;int型通常就是16位。
回復

使用道具 舉報

16#
ID:562798 發(fā)表于 2022-6-9 11:21 | 只看該作者
startxk 發(fā)表于 2022-6-9 09:37
int本來不就是16位么? 在很久很久以前,C語言才出現(xiàn)的時候,計算機的字寬是16位,int于是也就是16位. 后來出現(xiàn) ...

好勒!多謝!按照你這個思路應該是可以解決了!
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品蜜桃一区二区三区 | 中文字幕乱码亚洲精品一区 | 亚洲国产精品视频 | 国产精品不卡 | 欧美日韩不卡在线 | 亚洲自拍偷拍免费视频 | 日本一卡精品视频免费 | 日本免费网 | 国产一区二区在线视频 | 涩涩视频在线看 | 精品欧美一区二区精品久久 | 亚洲高清视频一区 | 国产一区二区在线播放 | 欧美1区 | 蜜桃免费av | 欧美一级片在线看 | 国产在线www| 欧美日韩成人在线 | 色综合视频 | 91在线视频在线观看 | 久久免费精品视频 | 日本一区二区高清视频 | 黄免费观看视频 | 午夜欧美a级理论片915影院 | 日韩精品一区二 | 国产成人精品久久二区二区 | 日韩成人免费av | 欧美一级免费看 | 亚洲精品久久久久久一区二区 | 国产精品一级 | 91精品国产综合久久久久久蜜臀 | 国产色爽 | 日韩成人免费视频 | 亚洲一区二区三区观看 | 自拍第1页| av网站免费| 一级毛片视频 | 日韩久久久久久 | 亚洲视频在线播放 | 国产精品一卡 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 |