[過去ログ] 【初心者歓迎】C/C++室 Ver.106【環境依存OK】 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
320(1): 2020/10/29(木)23:30 ID:BMEZnPdC(2/2) AAS
もう一つ質問です。
uint16_t num;
std::string str;
という2つの変数があった時、strを数値変換してnumに入れたいのですが、下記はどちらも間違ってはないですか?
どちらも戻り値はintとあったのですが、uint16で受けても問題ないのでしょうか?
num = std::stoi(str);
num = atoi(str.c_str());
322(2): はちみつ餃子 ◆8X2XSCHEME 2020/10/30(金)09:22 ID:WoJDazC2(1/4) AAS
>>320
int から uint16_t の変換について
変換後の型で表せない範囲の値を変換しようとしたとき、変換後の型が符号なし整数型である場合には、
変換後の型が格納可能な最大値 + 1 で modulo を取った値になることになってる。
(変換後の型が符号付である場合には未定義。)
結果の大きさが確実に uint16_t の範囲に入るという確信がある状況であればもちろん問題ないし、
そうでないときも結果が未定義ではないという意味では問題ないが、
プログラムの意図に合致するかどうかは状況による。
----
文字列を数値に変換することについて、
省2
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.055s*