問題タブ [unsigned]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
333 参照

c# - C# で unsigned int/long が常にチェックされたコンテキストで実行されるようにする

uint と ulong のデフォルトのコンテキストが、負になることのない値を表すことを意図していることを考慮して、チェックされているのではなく、チェックされていないことを奇妙に感じた人はいますか?

したがって、一部のコードがその制約に違反しようとしている場合、代わりに最大値を返すのではなく、例外をスローすることが自然で好ましい動作のように思えます (これにより、重要なデータが無効な状態になり、元に戻すことができなくなります。 .)。

チェックされたコンテキストで常に算術演算を実行するように、クラス/アセンブリのいずれかに適用できる既存の属性はありますか? 私は(PostSharpを使用する側面として)自分で書くことを考えていましたが、すでにあれば素晴らしいでしょう。

どうもありがとう、

0 投票する
4 に答える
1434 参照

language-agnostic - 負の数を防ぐための符号なし

私がこれを非主観的にすることができることを願っています

固定型言語では、メソッドや関数への入力を、やなどのunsigned型を使用して正の数に制限することがあります。unsigned intunsigned double

しかし、ほとんどの図書館はそのように考えていないようです。C#を取りstring.Lengthます。負になることはありませんが、整数です。同じことがC/C++にも当てはまります。sqrt入力はintまたはdoubleです。これには理由があることを私は知っています...たとえば、引数がファイルから読み取られる可能性があり、(理由はわかりませんが)値を関数に直接送信し、後でエラーをチェックする(またはtry-catchブロックを使用する)ことをお勧めします)。

したがって、ライブラリは自分のコードよりもはるかに優れた設計になっていると思います。では、正の数を表すために符号なしの数を使用する理由は何ですか?キャストしてから署名付きタイプに戻すときのオーバーフローが原因ですか?

0 投票する
4 に答える
6007 参照

c - unsigned int に負の数が含まれている理由

符号なし数値 (unsigned short、int、long) について私が知っていることは、正の数値のみが含まれているということですが、次の単純なプログラムは負の数値を unsigned int に正常に割り当てました。

出力は次のとおりです。 The subtraction of 10 from 20 is -10

0 投票する
1 に答える
2208 参照

c - 参照によるJNA符号なし整数は奇妙な結果をもたらします

現在、JNAを使用してCAPIにアクセスしようとしています。しかし、参照によって渡される符号なし整数パラメーターに問題があります。

問題のC関数は次のとおりです。

Javaでは次のようになります。

そして、これが私がそれをどのように使用しているかです:

これは私に与えます:

11000100110110010011000000(51602624)

とはいえ、0である必要があります。

JNA-APIの使用方法に問題がありますか?

ありがとうございました!

0 投票する
1 に答える
7423 参照

objective-c - CocoaでNSStringをunsigned intに変換する方法は?

NSString私のアプリケーションには、を含むが渡されますunsigned int。NSString にはメソッドがありません[myString unsignedIntegerValue];。文字列を壊さずに文字列から値を取り出して、NSNumber. 私はそれを次のようにしようとしています:

unsigned int上記は、最初に変換する必要があったため、ラージの最後を「切り取る」可能性がありNSIntegerますか? それとも使いやすそうですか?端っこを切るなら、以下はいかがでしょうか(ちょっと大袈裟だと思いますが)。

ご協力いただきありがとうございます。:)

0 投票する
2 に答える
2912 参照

c++ - 明示的な特性を持たない整数テンプレート パラメーターの符号付き/符号なしバリアントを取得する

テンプレート パラメータが常に整数型になるテンプレート クラスを定義しようとしています。クラスには 2 つのメンバーが含まれます。1 つは typeTで、もう 1 つはタイプの符号なしバリアント (Tつまり、 if T == int、 then )T_Unsigned == unsigned intです。私の最初の本能はこれを行うことでした:

しかし、うまくいきません。次に、次のように、部分的なテンプレートの特殊化を使用することを考えました。

すべての整数型を部分的に特化UnsignedTypeしている限り、これは機能します。追加のコピー アンド ペースト作業 (マクロの賢明な使用を断念) が少しありますが、実用的です。

ただし、私は今興味があります-型ごとに Traits クラスを手動で定義することなく、整数型の符号付きを決定したり、型の符号なしバリアントを使用したりする別の方法はありますか? それとも、これが唯一の方法ですか?

0 投票する
5 に答える
378 参照

c++ - C++ の式で符号なし整数を使用するとエラーが発生するのはなぜですか?

次の (疑似 C++) コードがあるとします。

(col - hw) が負の場所で、配列の半分の foo の値が台無しになります。col は int で最初に来るので、式のこの部分が int に変換されて負になると考えました。残念ながら、そうではないようです。符号なしの値のオーバーフローが発生し、その理由がわかりません。

この問題を解決するにはどうすればよいですか? 式の全体または一部にキャストを使用しますか? どのタイプのキャスト (C スタイルまたは static_cast<...>) ですか? キャストの使用にオーバーヘッドはありますか (高速に動作させるにはこれが必要です!)?

編集:すべての unsigned int を通常の整数に変更しましたが、この状況でなぜそのオーバーフローが発生したのか疑問に思っています。

0 投票する
5 に答える
2789 参照

c# - 長いシリアル番号 (10 バイト) を格納するための DataType

アプリケーションに読み込まれ、.net データ型に格納される必要がある 10 バイトのシリアル番号を持つデバイスがあります。デバイスでは、符号なしの 10 バイト (80 ビット) の数値として格納されます。この数値に対して数学演算を実行することはないと思いますが、ユーザーに表示するだけです。

.NET フレームワークには、このデータ型を格納する UNIT128 が組み込まれていません。このデータ型を格納するための私の提案は、10 要素のバイト配列を作成し、データをこの配列に読み込むことです。この問題に対するより良い解決策はありますか?

注:この質問で、GUID は 128 バイトの符号付き整数であることがわかりましたが、この方法で GUID を使用するのはお勧めできません。他の提案はありますか?

0 投票する
2 に答える
2155 参照

c# - バイト変数に sbyte 値を格納するにはどうすればよいですか?

私はC#でプログラミングしています。sbyte 変数があります。バイナリで11110110である-10を保持しているとします。この値のバイナリ表現をバイト変数に格納したいと思います。したがって、sbyte (-10) をバイトにコピーすると、バイト値は 245 になります。Convert.ToByte(sbyte) を使用しようとすると、意味のある例外がスローされます。ある型から別の型に変換したくはありませんが、ビットごとのコピーを作成します。どうやってやるの?

0 投票する
5 に答える
888 参照

c++ - 符号なしの負のプリミティブ?

C ++では、プリミティブを作成できますunsigned。しかし、彼らは常に前向きです。符号なしの負の変数を作成する方法もありますか?unsignedという単語は「符号なし」を意味するので、マイナス(-)記号でもありません。しかし、C++がそれを提供しなければならないと思います。