問題タブ [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.
c# - C# で unsigned int/long が常にチェックされたコンテキストで実行されるようにする
uint と ulong のデフォルトのコンテキストが、負になることのない値を表すことを意図していることを考慮して、チェックされているのではなく、チェックされていないことを奇妙に感じた人はいますか?
したがって、一部のコードがその制約に違反しようとしている場合、代わりに最大値を返すのではなく、例外をスローすることが自然で好ましい動作のように思えます (これにより、重要なデータが無効な状態になり、元に戻すことができなくなります。 .)。
チェックされたコンテキストで常に算術演算を実行するように、クラス/アセンブリのいずれかに適用できる既存の属性はありますか? 私は(PostSharpを使用する側面として)自分で書くことを考えていましたが、すでにあれば素晴らしいでしょう。
どうもありがとう、
language-agnostic - 負の数を防ぐための符号なし
私がこれを非主観的にすることができることを願っています
固定型言語では、メソッドや関数への入力を、やなどのunsigned
型を使用して正の数に制限することがあります。unsigned int
unsigned double
しかし、ほとんどの図書館はそのように考えていないようです。C#を取りstring.Length
ます。負になることはありませんが、整数です。同じことがC/C++にも当てはまります。sqrt
入力はint
またはdouble
です。これには理由があることを私は知っています...たとえば、引数がファイルから読み取られる可能性があり、(理由はわかりませんが)値を関数に直接送信し、後でエラーをチェックする(またはtry-catchブロックを使用する)ことをお勧めします)。
したがって、ライブラリは自分のコードよりもはるかに優れた設計になっていると思います。では、正の数を表すために符号なしの数を使用する理由は何ですか?キャストしてから署名付きタイプに戻すときのオーバーフローが原因ですか?
c - unsigned int に負の数が含まれている理由
符号なし数値 (unsigned short、int、long) について私が知っていることは、正の数値のみが含まれているということですが、次の単純なプログラムは負の数値を unsigned int に正常に割り当てました。
出力は次のとおりです。
The subtraction of 10 from 20 is -10
c - 参照によるJNA符号なし整数は奇妙な結果をもたらします
現在、JNAを使用してCAPIにアクセスしようとしています。しかし、参照によって渡される符号なし整数パラメーターに問題があります。
問題のC関数は次のとおりです。
Javaでは次のようになります。
そして、これが私がそれをどのように使用しているかです:
これは私に与えます:
11000100110110010011000000(51602624)
とはいえ、0である必要があります。
JNA-APIの使用方法に問題がありますか?
ありがとうございました!
objective-c - CocoaでNSStringをunsigned intに変換する方法は?
NSString
私のアプリケーションには、を含むが渡されますunsigned int
。NSString にはメソッドがありません[myString unsignedIntegerValue];
。文字列を壊さずに文字列から値を取り出して、NSNumber
. 私はそれを次のようにしようとしています:
unsigned int
上記は、最初に変換する必要があったため、ラージの最後を「切り取る」可能性がありNSInteger
ますか? それとも使いやすそうですか?端っこを切るなら、以下はいかがでしょうか(ちょっと大袈裟だと思いますが)。
ご協力いただきありがとうございます。:)
c++ - 明示的な特性を持たない整数テンプレート パラメーターの符号付き/符号なしバリアントを取得する
テンプレート パラメータが常に整数型になるテンプレート クラスを定義しようとしています。クラスには 2 つのメンバーが含まれます。1 つは typeT
で、もう 1 つはタイプの符号なしバリアント (T
つまり、 if T == int
、 then )T_Unsigned == unsigned int
です。私の最初の本能はこれを行うことでした:
しかし、うまくいきません。次に、次のように、部分的なテンプレートの特殊化を使用することを考えました。
すべての整数型を部分的に特化UnsignedType
している限り、これは機能します。追加のコピー アンド ペースト作業 (マクロの賢明な使用を断念) が少しありますが、実用的です。
ただし、私は今興味があります-型ごとに Traits クラスを手動で定義することなく、整数型の符号付きを決定したり、型の符号なしバリアントを使用したりする別の方法はありますか? それとも、これが唯一の方法ですか?
c++ - C++ の式で符号なし整数を使用するとエラーが発生するのはなぜですか?
次の (疑似 C++) コードがあるとします。
(col - hw) が負の場所で、配列の半分の foo の値が台無しになります。col は int で最初に来るので、式のこの部分が int に変換されて負になると考えました。残念ながら、そうではないようです。符号なしの値のオーバーフローが発生し、その理由がわかりません。
この問題を解決するにはどうすればよいですか? 式の全体または一部にキャストを使用しますか? どのタイプのキャスト (C スタイルまたは static_cast<...>) ですか? キャストの使用にオーバーヘッドはありますか (高速に動作させるにはこれが必要です!)?
編集:すべての unsigned int を通常の整数に変更しましたが、この状況でなぜそのオーバーフローが発生したのか疑問に思っています。
c# - 長いシリアル番号 (10 バイト) を格納するための DataType
アプリケーションに読み込まれ、.net データ型に格納される必要がある 10 バイトのシリアル番号を持つデバイスがあります。デバイスでは、符号なしの 10 バイト (80 ビット) の数値として格納されます。この数値に対して数学演算を実行することはないと思いますが、ユーザーに表示するだけです。
.NET フレームワークには、このデータ型を格納する UNIT128 が組み込まれていません。このデータ型を格納するための私の提案は、10 要素のバイト配列を作成し、データをこの配列に読み込むことです。この問題に対するより良い解決策はありますか?
注:この質問で、GUID は 128 バイトの符号付き整数であることがわかりましたが、この方法で GUID を使用するのはお勧めできません。他の提案はありますか?
c# - バイト変数に sbyte 値を格納するにはどうすればよいですか?
私はC#でプログラミングしています。sbyte 変数があります。バイナリで11110110である-10を保持しているとします。この値のバイナリ表現をバイト変数に格納したいと思います。したがって、sbyte (-10) をバイトにコピーすると、バイト値は 245 になります。Convert.ToByte(sbyte) を使用しようとすると、意味のある例外がスローされます。ある型から別の型に変換したくはありませんが、ビットごとのコピーを作成します。どうやってやるの?
c++ - 符号なしの負のプリミティブ?
C ++では、プリミティブを作成できますunsigned
。しかし、彼らは常に前向きです。符号なしの負の変数を作成する方法もありますか?unsignedという単語は「符号なし」を意味するので、マイナス(-)記号でもありません。しかし、C++がそれを提供しなければならないと思います。